eclipse下编译android自带联系人应用,在Eclipse下编译Android原生APK方法

转 glee Alex 的专栏文章:

http://blog.csdn.net/qq690197664/article/details/18223495

目标:

1.      在eclipse环境下,编译Android原生的apk

2.      在eclipse环境下,做system系统签名的方法。(有很多,这里在windowsxp下做脚本处理)

前提:

1.      下载android源码;

2.      编译android源码;

以上两步网上有很多相关的资料,这里不做重复说明。

说明:

在eclipse环境下,要编译一个原生的apk是相当困难的。

但是还是有办法的,这里只做Java层的编译的说明,不做eclipse下C/C++的编译。

我们要去剖析Android源码编译APK的整个过程。

*.java文件 --》  *.class文件 --》 打包到 *.dex文件

所以还是生成了*.class文件的。Eclipse应用系统jar和第三方jar都是压缩 *.class文件。

目标1 搭建eclipse编译android原生APK环境

问题1:这些*.class文件在哪里呢?

编译源码过程中会生成很多的中间文件,在out\target\common\obj\JAVA_LIBRARIES 可以惊喜的发现很多android平台的Jar包,注意用压缩软件看看jar的详细内容,都是*.class

这里我们举出一个例子:

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Ok,从图中你就可以看到相关的内容,注意要编译android源码后才能看到。这里不再啰嗦了。经过对比classes.jar classes-full-debug.jar classes-jarjar.jar 三个文件居然相同。

问题2:classes.jar classes-full-debug.jar classes-jarjar.jar三个文件在编译时的具体作用在这里不做说明。(有兴趣的朋友可以自己研究下)

问题3:怎么处理eclipse的环境,才能编译android原生的APK呢?

步骤如下:

1.      将android源码目录下out\target\common\obj\JAVA_LIBRARIES 的 classes.jar 或者

class-full-debug.jar拷贝到一个公共目录。

0818b9ca8b590ca3270a3433284dd417.png

2.      将拷出的classes.jar 或者 class-full-debug.jar 修改为对应文件夹前缀的名字。

android.cts.dpi_intermediates   classes-full-debug.jar  --》android.cts.dpi.jar

省略掉_intermediates 后缀即可。(这个工作是个力气活,要多点耐心!!!!)

0818b9ca8b590ca3270a3433284dd417.png

3.      在eclipse中导入Settings.apk源码.

目录  package/apps/Settings/****

0818b9ca8b590ca3270a3433284dd417.png

问题来了,报了很多错红叉,不怕,接着来解决问题。

问题4:如何构建自己的eclipse的APK编译环境。

Settings工程目录上右键à Build Path à  Add Library

0818b9ca8b590ca3270a3433284dd417.png

点击User Libraries 按钮

0818b9ca8b590ca3270a3433284dd417.png

增加自己的库名:android_system  并勾选  System library (added to the boot class path)

0818b9ca8b590ca3270a3433284dd417.png

选中建立的android_system系统库,点击Add JARS按钮,找到第2步的文件夹,选中所有jar文件,打开,然后OK 确认。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

Settings工程目录上右键 --》Build Path --》  Add Library

勾选android_system  按Finish按钮即可。

0818b9ca8b590ca3270a3433284dd417.png

问题5:出现了两个系统库怎么处理?

需要将原生的Android 4.3移除。

0818b9ca8b590ca3270a3433284dd417.png

移除的方法

Settings工程目录上右键à Build Path --》 Configure Build Path..

选中Android 4.3 点击右侧的Remove按钮。Ok搞定。

0818b9ca8b590ca3270a3433284dd417.png

遇到的问题处理:

0818b9ca8b590ca3270a3433284dd417.png

这种情况下,快捷键Ctrl + 1   点击上图的ClearAll Lint markers  Ok

最后的结果:

0818b9ca8b590ca3270a3433284dd417.png

目标2 eclipse下签名APK

0818b9ca8b590ca3270a3433284dd417.png

步骤:

1.      建立sign目录

2.      拷贝签名文件 platform.pk8 platform.x509.pem

3.      签名signapk.jar

4.      创建signShell.bat文件

signShell.bat

脚本内容:

E:

cd E:\project\myeclipse\androidProject_hn_2013_1_07_ANT\Settings\bin

del Settings2.apk

java -jar ../sign/signapk.jar../sign/platform.x509.pem ../sign/platform.pk8 Settings.apk  Settings2.apk

adb uninstall com.android.settings

adb install Settings2.apk

pause

双击的时候 signshell.bat的 open With à System Editor

5.      AndroidManifest.xml 中 system权限

package="com.android.settings"

coreApp="true"

android:sharedUserId="android.uid.system">

所以顺序是运行Settings工程,在bin目录下生成了Settings.apk

点击signshell.bat 脚本,运行后生成签名后的Settings2.apk

Ok一切搞定。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值