隐式调用Activity、JSON格式书写的学习
2015-01-07 16:18
169 查看
需要开发一个测试程序apk工具,要求是电脑输入命令开启APP,并且使得测试的结果为JSON格式的文本存放。思路流程:
(1)Action的隐式调用:
1、主要注意的是清单中AndroidManifest.xml中,在需要隐式调用的Activity的<intent-filter>添加 <category android:name="android.intent.category.DEFAULT" /><category android:name="myCategory"
/>,同时写好需要用到的Action,这里我用<action android:name="com..test.json" />来启动app。(也可以在代码上添加Action)
2、还需要在清单中,添加权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />//可写手机内存
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>//可读手机内存
(2)JSON格式的书写:需要JSONStringer这个类来添加,还有键值对来标识。例子:
{
"Type":"test",
"Result":"ok",
"Number":"1738849455",
}
java代码如下:
JSONStringer mJsonStringer=new JSONStringer();
mJsonStringer.object();//开始
mJsonStringer.key("Type");
mJsonStringer.value("test");
mJsonStringer.key("Result");
mJsonStringer.value("ok");
mJsonStringer.key("Sn");
mJsonStringer.value("1738849455");
mJsonStringer.endObject();//结束
接下来贴出代码:
1、清单AndroidManifest.xml代码
2、类KeyInfo:
3、类MyJsonWriter:
4、主代码MainActivity:
BufferedWriter writer=new BufferedWriter(new FileWriter(file));//BufferedReader写入内容到指定文件
int len=0;char[] buffer=new char[1024]; while((len=reader.read(buffer))!=-1){writer.write(buffer, 0, len);}writer.flush();writer.close();reader.close();} catch (IOException e) {e.printStackTrace();}}}
5、电脑输入启动测试程序的命令:adb shell am start -a com.test.json
(1)Action的隐式调用:
1、主要注意的是清单中AndroidManifest.xml中,在需要隐式调用的Activity的<intent-filter>添加 <category android:name="android.intent.category.DEFAULT" /><category android:name="myCategory"
/>,同时写好需要用到的Action,这里我用<action android:name="com..test.json" />来启动app。(也可以在代码上添加Action)
2、还需要在清单中,添加权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />//可写手机内存
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>//可读手机内存
(2)JSON格式的书写:需要JSONStringer这个类来添加,还有键值对来标识。例子:
{
"Type":"test",
"Result":"ok",
"Number":"1738849455",
}
java代码如下:
JSONStringer mJsonStringer=new JSONStringer();
mJsonStringer.object();//开始
mJsonStringer.key("Type");
mJsonStringer.value("test");
mJsonStringer.key("Result");
mJsonStringer.value("ok");
mJsonStringer.key("Sn");
mJsonStringer.value("1738849455");
mJsonStringer.endObject();//结束
接下来贴出代码:
1、清单AndroidManifest.xml代码
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.json" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="9" android:targetSdkVersion="18" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.example.json.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="com.gree.test.json" /> <category android:name="android.intent.category.DEFAULT" /> <category android:name="myCategory" /> </intent-filter> </activity> </application> </manifest>
2、类KeyInfo:
package com.example.json; public class KeyInfo { String sn; String type; boolean result; public void setSN(String sn){ this.sn=sn; } public Object getSN() { return sn; } public void isResult(boolean result) { this.result=result; } public boolean getResult(){ return result; } public void setType(String type){ this.type=type; } public Object getType() { return type; } }
3、类MyJsonWriter:
package com.example.json; import java.util.ArrayList; import org.json.JSONException; import org.json.JSONStringer; public class MyJsonWriter { private ArrayList<KeyInfo> mKeyInfos; private String mjsonData ; public MyJsonWriter(ArrayList<KeyInfo> keyInfos){ this.mKeyInfos=keyInfos; } public String TranstJsonData(){ JSONStringer mJsonStringer=new JSONStringer(); try { for(int i=0;i<mKeyInfos.size();i++){ KeyInfo keyInfo=mKeyInfos.get(i); mJsonStringer.object(); mJsonStringer.key("Type"); mJsonStringer.value(keyInfo.getType()); mJsonStringer.key("Result"); mJsonStringer.value(keyInfo.getResult()?"ok":"failure"); mJsonStringer.key("Sn"); mJsonStringer.value(keyInfo.getSN()); mJsonStringer.endObject(); } } catch (JSONException e) { e.printStackTrace(); } return mjsonData=mJsonStringer.toString();//JSON格式转换到String } }
4、主代码MainActivity:
package com.example.json; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import android.os.Bundle; import android.os.Environment; import android.app.Activity; import android.util.Log; public class MainActivity extends Activity { private String mString; private String tag="json test"; private MyJsonWriter mMyJsonWriter; private KeyInfo mKeyInfo; private ArrayList<KeyInfo> folks ; private File mFile; private File mDir; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); folks = new ArrayList<KeyInfo>(); mKeyInfo = new KeyInfo(); String serialName=android.os.Build.SERIAL; mKeyInfo.setType("KeyTest"); mKeyInfo.setSN(serialName); mKeyInfo.isResult(true); folks.add(mKeyInfo); mMyJsonWriter = new MyJsonWriter(folks); // String mTimeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new Date()); mFile = new File(getDir(),"key_test_result.json"); Log.d(tag, "----------->"+serialName); mString= mMyJsonWriter.TranstJsonData(); writeData(mString, mFile); } private File getDir(){ mDir = new File(Environment.getExternalStorageDirectory()+"/Json");//手机内存根目录下新建文件夹JSON if (mDir.exists()) { return mDir; } else { mDir.mkdirs(); return mDir; } } private void writeData(String jsonData,File file) { try { // String mJsonData=new String( jsonData.getBytes(),"UTF-8"); BufferedReader reader=new BufferedReader(new StringReader(jsonData));//<span style="font-family: Arial, Helvetica, sans-serif;">BufferedReader缓存</span><pre name="code" class="java">jsonData内容
BufferedWriter writer=new BufferedWriter(new FileWriter(file));//BufferedReader写入内容到指定文件
int len=0;char[] buffer=new char[1024]; while((len=reader.read(buffer))!=-1){writer.write(buffer, 0, len);}writer.flush();writer.close();reader.close();} catch (IOException e) {e.printStackTrace();}}}
5、电脑输入启动测试程序的命令:adb shell am start -a com.test.json
相关文章推荐
- Jquery Ajax 学习实例2 向页面发出请求 返回JSon格式数据
- json格式学习笔记
- Ajax和Jquery学习总结(2)——JSON格式的数据
- 在新浪SAE上学习PHP - 2(转换json格式)
- Android学习系列(20)--App数据格式之解析Json
- 学习JSON:格式转换之JsonToXml
- Python学习之利用Python处理JSON格式数据
- Android学习系列(20)--App数据格式之解析Json
- Android学习-JSON数据格式
- ios网络学习------5 json格式数据的请求处理
- JSON学习(一)——JSON简介和格式说明
- Spring MVC 学习笔记 九 json格式的输入和输出
- Spring MVC 学习笔记 json格式的输入和输出
- Spring MVC 学习笔记 json格式的输入和输出
- php学习笔记(三十)ajax请求和接收参数的实现方式(包括json数据格式的简单处理)
- Jquery Ajax学习实例2-向页面发出请求,返回JSon格式数据
- Spring MVC 学习笔记 九 json格式的输入和输出
- WCF中操作契约 BodyStyle和XML, Json格式的学习
- Spring MVC 学习笔记 json格式的输入和输出
- ios网络学习------6 json格式数据的请求处理