一、通过eclipse开发工具开发具有用户界面的测试程序。工程名称TestDev
主程序源代码MainActivity.java如下:
package com.example.testdev;
import android.os.Bundle;
import android.os.RemoteException;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
//这个类在1.6版本后被隐藏掉了,在系统内可以编译通过
//eclipse却不行,eclipse里如何获取服务再研究
import android.os.ServiceManager;
//导入测试接口
import android.os.ITestService;
public class MainActivity extends Activity
{
//读取键
private Button readBtn;
//写入键
private Button writeBtn;
//清空键
private Button clearBtn;
//文本编辑框
private EditText editVal;
//定义测试服务接口
private ITestService testService = null;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//通过服务管理器获取服务,然后把服务转换为接口,注意服务名test小写
testService = ITestService.Stub.asInterface(ServiceManager.getService("test"));
//获取控件
readBtn = (Button)findViewById(R.id.readbtn);
writeBtn = (Button)findViewById(R.id.writebtn);
clearBtn = (Button)findViewById(R.id.clearbtn);
editVal = (EditText)findViewById(R.id.valueEdit);
//设置读取按键的监听器
readBtn.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
try
{
int val = testService.getVal();
String text = String.valueOf(val);
editVal.setText(text);
}
catch (RemoteException e){
}
} }); //设置写入监听器 writeBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { try { String text = editVal.getText().toString(); int val = Integer.parseInt(text); testService.setVal(val); } catch (RemoteException e){ } } }); //清理监听器 clearBtn.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { editVal.setText(""); } }); } }
二、将TestDev这个目录里的文件拷贝至packages/experimental目录(应用试验性目录)
注意要把gen目录删除,否则编译会出错,一般来说只需要src\res两个目录,其他的目录都可删除
三、在packages/experimental/TestDev目录中,新增Android.mk文件
文件内容如下:
四、编译:
/Android$ mmm packages/experimental/TestDev
编译成功后,便可以在out/target/product/generic/system/app目录下看到TestDev.apk文件了。
五、重新打包系统镜像文件system.img:
Android$ make snod
重新打包后的system.img文件就内置了TestDev.apk文件了。
六. 运行Android模拟器:
Android$ emulator -kernel kernel/goldfish/arch/arm/boot/zImage &
查看调试信息:
adb shell
logcat