ustcrding 2012-04-13
IDF2012于4月11日、12日在北京国家会议中心隆重举行,这也是自2007年以来连续第6年在中国首发。本届IDF将以“未来在我‘芯’”为主题,前瞻IT产业的发展与计算体验的变革,共迎个性化计算时代的到来。由于英特尔的生态系统还没有发展起来,因此通过从ARM平台的Android应用向英特尔x86平台迁移是当前最为快捷的一个方式。
本节动手实验室课程主要是熟悉Android开发工具的使用,移植现有的针对ARM的Android NDK应用程序到使用英特尔凌动处理器的设备中,同时熟悉从头创建基于NDK的Android应用程序。
学习Android NDK最好办法就是学习Android自带的例子, 这里就通过学习Android的NDK自带的demo程序:hello-jni来达到这个目的。
一、 开发环境的搭建
1. android的NDK开发需要在linux下进行: 因为需要把C/C++编写的代码生成能在arm上运行的.so文件,这就需要用到交叉编译环境,而交叉编译需要在linux系统下才能完成。
2. 安装android-ndk开发包,这个开发包可以在google android 官网下载: 通过这个开发包的工具才能将android jni 的C/C++的代码编译成库
3. android应用程序开发环境: 包括eclipse、java、 android sdk、 adt等。
在开始英特尔Android应用程序开发之前,请做好几个准备工作,第一、购买一台x86的设备,第二、配置一个Linux系统环境,就可以开始您的开发工作了。
JNI具有平台性,针对ARM编译的程序只能运行在ARM平台,针对x86平台编译的程序只能运行在x86平台。
目前还没有X86 的真机,开发者需要到英特尔官网下载虚拟机进行相关的开发和调试,和使用ARM完全一样。
Android在推出的时候默认只能支持ARM,因此使用Android.Mk命令下默认归到ARM平台。
验证环境,列出当前开发系统中可以使用的
命令:android list
创建管理android虚拟机
命令:android avd
运行创建好的虚拟机
命令:emulator-x86 –avd ics &
实验:如何在x86平台创建一个Android NDK应用程序
1.1. 命令:cd ~/labs/lab1
1.2. 安装apk程序包 命令:adb install AndroidMarket-jackpal.androidterm-2.apk
1.3. 查看log信息,寻找出错点 命令:adb logcat –t 50
1.4. 卸载改程序,参数为包名 命令:adb uninstall jackpal.androidterm
1.5. 命令:cd ~/labs/lab1/src/Android-Terminal-Emulator/
1.6. 命令:less jni/Android.mk
1.7. 使用 ndk-build编译x86版本的库 命令:ndk-build APP_ABI=x86
1.8. 更新project,主要是为了添加必须的文件能使用ant 工具打包。命令:android update project –target”android-15” –path.
1.9. 使用ant编译打包,命令: ant debug
1.10. 安装,命令:adb install bin/Term-debug.apk
1.11. 命令:adb logcat –t 20
1.12. 命令:adb uninstall jackpal.androidterm
顺利完成以上的命令,那么开发者就可以完成在英特尔x86架构上开发Android应用程序了。不过对于开发者来说,目前英特尔还没有供大家开发的真机上市,开发者智能通过这个模拟器进行应用程序的开发和调试,这种感觉有些类似2009年,当时Android刚刚对外发布的时候,没有真机的开发者只能通过模拟器进行开发方面的工作,这种效率虽然英特尔的技术专家没有进行相关的说明,不过效率我们都可以猜的出来。