android内核字符驱动设备实战之----------应用层测试程序篇
2013-01-14 12:30
706 查看
一、通过eclipse开发工具开发具有用户界面的测试程序。工程名称TestDev
主程序源代码MainActivity.java如下:
二、将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
主程序源代码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
相关文章推荐
- android内核字符驱动设备实战之----------运行时库层jni动态库编程(应该是应用框架层)
- android内核字符驱动设备实战之----------应用框架层aidl服务编程篇
- android内核字符驱动设备实战之----------内置C语言测试程序篇
- android内核字符驱动设备实战之----------设备驱动程序篇
- android内核字符驱动设备实战之----------总结篇
- android内核字符驱动设备实战之----------硬件抽象层模块编程篇
- Android字符设备驱动及应用层从jni控制GPIO实战
- Android 从硬件到应用:一步一步向上爬 2 -- 运行 C 程序测试硬件驱动
- arm 驱动基础:字符设备中断实现过程(内核->驱动->应用)
- linux 字符设备驱动的验证程序(openplatform/android/externl/chr_dev/)
- openwrt系统之字符设备驱动软件包加载、测试程序加载
- Android中字符设备驱动和应用实例(一) 驱动部分
- andriod驱动之旅-在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序(4)
- Android中字符设备驱动和应用实例(二) 应用部分
- Android中字符设备驱动和应用实例(一)——驱动部分
- Android中字符设备驱动和应用实例(二)——应用部分
- Linux2.6内核下简单的字符设备驱动及测试
- 使用内核定时器的second字符设备驱动及测试代码
- 在Ubuntu上为Android系统内置C可执行程序测试Linux内核驱动程序
- 【内核&驱动】字符设备驱动程序【2】