您的位置:首页 > 移动开发 > Android开发

android内核字符驱动设备实战之----------应用层测试程序篇

2013-01-14 12:30 706 查看
一、通过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文件

文件内容如下:

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)

LOCAL_MODULE_TAGS := optional

LOCAL_SRC_FILES := $(call all-subdir-java-files)

LOCAL_PACKAGE_NAME := Hello

include $(BUILD_PACKAGE)
四、编译:

/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

 

 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐