在Eclipse中编译运行Android4.3应用源码

项目源码已整理上传,欢迎下载。

Launcher2

Gallery2

库中所需jar包

Google在7月25发布了Android4.3源码——最后一个版本的JB,开发者很多时候需要研究源码,每次都在Linux环境下编译难免有些烦躁,尤其对于上层应用开发者,4.3里的app有不少经典案例,能够把他们移到Eclipse下进行编译调试,效率会高很多,下面以Launcher和Gallery2源码为例,一简一繁,简要总结下“移植”思路,供参考~

需完成准备工作:

a ) 已成功下载全编Android4.3_r1源码,out目录约大小12G。

b ) 使用4.3 的SDK、API18的平台版本,可通过下载。如Eclipse升级无障碍,可自行升级平台。

c ) JDK版本1.6及以上,升级平台后环境变量需正确设置。

准备工作完成后,就可以开始“移植”工作了,因为本文使用源码是4.3,,所以SDK版本也需同步,较4.2及以前框架层对于不少管理器做了小幅修改,如果你准备编译的是其它版本的应用程序,选择对应的的SDK版本即可。

=====Launcer2 (android-4.3_r1\packages\apps)======

把大象塞冰箱里,一共分几步?

三步:

1)打开冰箱门

2)把大象塞进去

3)把冰箱门关上

问:移植Launcher2需要几步?也是三步

1)开门:把应用文件夹Copy出来放到特定位置,使用Eclipse导入已存在项目,选择Launcher2后,确定。

2)塞进去 :

有编译错误,还好不多,在Launcher.java文件中找不到Search类

Launcher2应用和Eclipse水土不服,主要原因是在Linux下编译会用到框架层提供的一些静态库,这些静态库被封装起来,并没有暴露给我们当做SDK来使用,Search就是一例,源码位置在frameworks\ex\common\java\com\android\common中,编译后在哪呢?Android为了让编译器知道该模块在编译时需要哪些链接库,在每个模块根目录下都写了一个Android.mk文件,在该文件中能够找到答案

Launcher2在Linux下编译时需要使用android-common和android-support-v13两个静态库,这两个静态库在全编时已经被输出\out\target\common\obj\JAVA_LIBRARIES中,我们只需要到这个目录下把jar包取出,作为系统库的jar包放到Eclipse的buildpath中去即可排除此类问题。

把JAVA_LIBRARIES下的android-common_intermediates和android-support-v13_intermediates目录下的jarlib.jar取出,分别改名为common_intermediate.jar和support_v13_intermediates.jar,然后新建一个System lib,取名为Launcher_Jars,把这两个jar包添加进来,clean,build通过。

3)关门 :

项目视图及在电信S3上的运行效果如下图,提示:Launcher2比较特殊,安装apk后需要点击Home按键,选择启动器才行。

====Gallery2 (android-4.3_r1\packages\apps)======

前面小试牛刀,难度较小,导入源码后编译错误较少,达不到练兵的目的,于是本人不自觉的把Gallery2的源码Copy了出来,据听过谷歌自4.1后开始将Gallery和Camera及图片处理源码打包,涉及到静态库和图像效果处理,木有关系,试试嘛~

项目导入时,tests和test_camera都是测试程序,暂时不需要,直接选择项目源码即可。

导入源码编译后,基本是红成一片,是可忍孰不可忍,但有个原则,当你看到零星的编译错误时,可以尝试逐个修改,红成一片的情况就不要一个一个查了,需要策略性的行为。按照上文思路找到Android,mk中定义的的静态库,如下:

按照Launcher2中的相关步骤,用这些jar包建立Eclipse系统库并导入,完成后的项目部分视图如下,

要铭记在心;每天都是一年中最美好的日子

在Eclipse中编译运行Android4.3应用源码

相关文章:

你感兴趣的文章:

标签云: