diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..10a51ae
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,5 @@
+/AppControl/gen/*
+/AppControl/bin/*
+/AppControl/.settings/*
+.classpath
+.project
\ No newline at end of file
diff --git a/AppControl/AndroidManifest.xml b/AppControl/AndroidManifest.xml
new file mode 100644
index 0000000..52e34af
--- /dev/null
+++ b/AppControl/AndroidManifest.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/AppControl/ic_launcher-web.png b/AppControl/ic_launcher-web.png
new file mode 100644
index 0000000..a18cbb4
Binary files /dev/null and b/AppControl/ic_launcher-web.png differ
diff --git a/AppControl/libs/android-support-v4.jar b/AppControl/libs/android-support-v4.jar
new file mode 100644
index 0000000..187bdf4
Binary files /dev/null and b/AppControl/libs/android-support-v4.jar differ
diff --git a/AppControl/proguard-project.txt b/AppControl/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/AppControl/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/AppControl/project.properties b/AppControl/project.properties
new file mode 100644
index 0000000..13143ab
--- /dev/null
+++ b/AppControl/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
+android.library.reference.1=../appcompat_v7
diff --git a/AppControl/res/drawable-hdpi/ic_launcher.png b/AppControl/res/drawable-hdpi/ic_launcher.png
new file mode 100644
index 0000000..288b665
Binary files /dev/null and b/AppControl/res/drawable-hdpi/ic_launcher.png differ
diff --git a/AppControl/res/drawable-mdpi/ic_launcher.png b/AppControl/res/drawable-mdpi/ic_launcher.png
new file mode 100644
index 0000000..6ae570b
Binary files /dev/null and b/AppControl/res/drawable-mdpi/ic_launcher.png differ
diff --git a/AppControl/res/drawable-xhdpi/ic_launcher.png b/AppControl/res/drawable-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..d4fb7cd
Binary files /dev/null and b/AppControl/res/drawable-xhdpi/ic_launcher.png differ
diff --git a/AppControl/res/drawable-xxhdpi/ic_launcher.png b/AppControl/res/drawable-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..85a6081
Binary files /dev/null and b/AppControl/res/drawable-xxhdpi/ic_launcher.png differ
diff --git a/AppControl/res/layout/activity_main.xml b/AppControl/res/layout/activity_main.xml
new file mode 100644
index 0000000..9e3d967
--- /dev/null
+++ b/AppControl/res/layout/activity_main.xml
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
diff --git a/AppControl/res/menu/main.xml b/AppControl/res/menu/main.xml
new file mode 100644
index 0000000..2dfcb9a
--- /dev/null
+++ b/AppControl/res/menu/main.xml
@@ -0,0 +1,12 @@
+
diff --git a/AppControl/res/values-v11/styles.xml b/AppControl/res/values-v11/styles.xml
new file mode 100644
index 0000000..a4a95bc
--- /dev/null
+++ b/AppControl/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
diff --git a/AppControl/res/values-v14/styles.xml b/AppControl/res/values-v14/styles.xml
new file mode 100644
index 0000000..664f4f1
--- /dev/null
+++ b/AppControl/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/AppControl/res/values-w820dp/dimens.xml b/AppControl/res/values-w820dp/dimens.xml
new file mode 100644
index 0000000..f3e7020
--- /dev/null
+++ b/AppControl/res/values-w820dp/dimens.xml
@@ -0,0 +1,10 @@
+
+
+
+ 64dp
+
+
diff --git a/AppControl/res/values/dimens.xml b/AppControl/res/values/dimens.xml
new file mode 100644
index 0000000..55c1e59
--- /dev/null
+++ b/AppControl/res/values/dimens.xml
@@ -0,0 +1,7 @@
+
+
+
+ 16dp
+ 16dp
+
+
diff --git a/AppControl/res/values/strings.xml b/AppControl/res/values/strings.xml
new file mode 100644
index 0000000..9b303b9
--- /dev/null
+++ b/AppControl/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+
+
+ AppControl
+ Hello world!
+ Settings
+
+
diff --git a/AppControl/res/values/styles.xml b/AppControl/res/values/styles.xml
new file mode 100644
index 0000000..845fb57
--- /dev/null
+++ b/AppControl/res/values/styles.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
diff --git a/AppControl/src/com/changhong/appcontrol/MainActivity.java b/AppControl/src/com/changhong/appcontrol/MainActivity.java
new file mode 100644
index 0000000..41058f4
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/MainActivity.java
@@ -0,0 +1,41 @@
+package com.changhong.appcontrol;
+
+import android.support.v7.app.ActionBarActivity;
+import android.content.Context;
+import android.content.Intent;
+import android.media.AudioManager;
+import android.media.MediaPlayer;
+import android.media.MediaRouter;
+import android.os.Bundle;
+import android.util.Log;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.View;
+import android.view.View.OnClickListener;
+import android.widget.Button;
+
+public class MainActivity extends ActionBarActivity {
+
+ protected Button sendButton;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.activity_main);
+
+ sendButton = (Button)this.findViewById(R.id.button_send);
+
+ sendButton.setOnClickListener(new OnClickListener() {
+
+ @Override
+ public void onClick(View v) {
+ Log.i("yangtong","ButtonClick");
+ Intent intent = new Intent();
+ intent.setAction("com.changhong.appcontrol.transfer");
+ sendBroadcast(intent);
+ }
+ });
+ }
+
+
+}
diff --git a/AppControl/src/com/changhong/appcontrol/TransferReceiver.java b/AppControl/src/com/changhong/appcontrol/TransferReceiver.java
new file mode 100644
index 0000000..0d67b53
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/TransferReceiver.java
@@ -0,0 +1,46 @@
+package com.changhong.appcontrol;
+
+import com.changhong.appcontrol.transfer.Transfer;
+import com.changhong.appcontrol.transfer.TransferCallBack;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.util.Log;
+
+/**
+ * AppControl入口,负责从服务器端下载信令信息
+ * @author YangTong
+ *
+ */
+public class TransferReceiver extends BroadcastReceiver implements TransferCallBack{
+
+
+ int failureCount=0;
+ Transfer transfer;
+
+ public static final String JSON_URL = "http://192.168.1.105";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ // TODO 主要逻辑都在这里实现
+ Log.i("yangtong","TransferReceiver onReceive");
+
+ failureCount = intent.getIntExtra("failureCount", 0);
+
+ transfer = new Transfer(context, JSON_URL);
+ transfer.downloadControlInfo(this);
+ }
+
+
+ /**
+ * 数据下载完成
+ */
+ @Override
+ public void downloadFinish(String appControlInfo) {
+ // TODO 失败的话继续下一次请求,成功的话则开始进行后续的分离等操作
+ Log.i("yangtong","Info >>"+appControlInfo);
+
+ }
+
+}
diff --git a/AppControl/src/com/changhong/appcontrol/analysis/JsonAnalysis.java b/AppControl/src/com/changhong/appcontrol/analysis/JsonAnalysis.java
new file mode 100644
index 0000000..9250e67
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/analysis/JsonAnalysis.java
@@ -0,0 +1,18 @@
+package com.changhong.appcontrol.analysis;
+
+import com.changhong.appcontrol.model.AppControl;
+
+public class JsonAnalysis {
+
+ public static AppControl analysisJson(String jsonString){
+ AppControl appControl= new AppControl();
+
+ return appControl;
+ }
+
+ public static boolean isStringCompleted(String jsonString){
+
+ return true;
+ }
+
+}
diff --git a/AppControl/src/com/changhong/appcontrol/model/AppControl.java b/AppControl/src/com/changhong/appcontrol/model/AppControl.java
new file mode 100644
index 0000000..0a63746
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/model/AppControl.java
@@ -0,0 +1,22 @@
+package com.changhong.appcontrol.model;
+
+import java.util.List;
+
+public class AppControl {
+
+ public int networkId;
+ public int versionMajor;
+ public int versionMinor;
+ public int dataLength;
+ public List certifications;
+ public List applications;
+ public AppControl(){
+
+ }
+ public AppControl(int networkId,int versionMajor,int versionMinor,int dataLength){
+ this.networkId = networkId;
+ this.versionMajor = versionMajor;
+ this.versionMinor = versionMinor;
+ this.dataLength = dataLength;
+ }
+}
diff --git a/AppControl/src/com/changhong/appcontrol/model/Application.java b/AppControl/src/com/changhong/appcontrol/model/Application.java
new file mode 100644
index 0000000..00ede1e
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/model/Application.java
@@ -0,0 +1,26 @@
+package com.changhong.appcontrol.model;
+
+public class Application {
+ public final String appName;
+ public final int appID;
+ public final int orgID;
+ public final int appType;
+ public final int appVersion;
+ public final int appPriority;
+ public final int installType;
+ public final String cerID;
+ public final String appUrl;
+
+ public Application(String appName,int appID,int orgID,
+ int appType,int appVersion,int appPriority,int installType,String cerID,String appUrl){
+ this.appName = appName;
+ this.appID = appID;
+ this.orgID = orgID;
+ this.appType = appType;
+ this.appVersion = appVersion;
+ this.appPriority = appPriority;
+ this.installType = installType;
+ this.cerID = cerID;
+ this.appUrl = appUrl;
+ }
+}
diff --git a/AppControl/src/com/changhong/appcontrol/model/Certification.java b/AppControl/src/com/changhong/appcontrol/model/Certification.java
new file mode 100644
index 0000000..3918a16
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/model/Certification.java
@@ -0,0 +1,10 @@
+package com.changhong.appcontrol.model;
+
+public class Certification {
+ public final String cerID;
+ public final String cerUrl;
+ public Certification(String cerID,String cerUrl){
+ this.cerID = cerID;
+ this.cerUrl = cerUrl;
+ }
+}
diff --git a/AppControl/src/com/changhong/appcontrol/transfer/Transfer.java b/AppControl/src/com/changhong/appcontrol/transfer/Transfer.java
new file mode 100644
index 0000000..8c12f38
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/transfer/Transfer.java
@@ -0,0 +1,77 @@
+package com.changhong.appcontrol.transfer;
+
+import java.io.BufferedInputStream;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import android.R.integer;
+import android.content.Context;
+import android.os.AsyncTask;
+
+public class Transfer {
+
+ public Context context;
+ public String urlString;
+
+ public interface FinishCallBack{
+
+ }
+
+ public Transfer(Context context,String urlString){
+ this.context = context;
+ this.urlString = urlString;
+ }
+
+ public void downloadControlInfo(TransferCallBack callBack){
+
+ GetInfoTask getInfoTask = new GetInfoTask(callBack);
+ getInfoTask.execute(urlString);
+
+ }
+
+ public class GetInfoTask extends AsyncTask{
+
+ TransferCallBack callBack;
+
+ public GetInfoTask(TransferCallBack callBack) {
+ // TODO Auto-generated constructor stub
+ this.callBack = callBack;
+ }
+ @Override
+ protected String doInBackground(String... params) {
+ // TODO Auto-generated method stub
+ String jsonString = "";
+ try {
+ URL url = new URL(params[0]);
+ InputStream is = url.openStream();
+ BufferedReader br = new BufferedReader(new InputStreamReader(is));
+ String line = null;
+ while((line=br.readLine())!=null){
+ jsonString+=line;
+ }
+ is.close();
+ } catch (MalformedURLException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ return jsonString;
+ }
+ @Override
+ protected void onPostExecute(String result) {
+ // TODO Auto-generated method stub
+ super.onPostExecute(result);
+ callBack.downloadFinish(result);
+ }
+
+
+
+ }
+
+}
diff --git a/AppControl/src/com/changhong/appcontrol/transfer/TransferCallBack.java b/AppControl/src/com/changhong/appcontrol/transfer/TransferCallBack.java
new file mode 100644
index 0000000..b9ad96d
--- /dev/null
+++ b/AppControl/src/com/changhong/appcontrol/transfer/TransferCallBack.java
@@ -0,0 +1,7 @@
+package com.changhong.appcontrol.transfer;
+
+public interface TransferCallBack {
+
+ public void downloadFinish(String appControlInfo);
+
+}
diff --git a/README.md b/README.md
index 22651bc..ff01b86 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
#Silent Install
-This project targets to realize the following function:I can control the client's apps by edit configure file in server,
+This project targets to realize the following function:Control the client's apps by edit configure file in server,
including install some apps,uninstall some apps and upgrade some apps.
\ No newline at end of file