android framework 编译,Android点滴——framework层编译

应需求修改framework层,要想生效得重新编译该部分。

首先可以单独编译framework么?

答案是肯定的:在上一篇关于编译系统的介绍中简述了一些编译命令。在安卓系统中很好的一点就是模块化,再加上整个编译系统,可以针对单独的模块进行编译,当然也包括framework层。

编译产物是啥?

“framework在编译后会生成几个重要的jar包:framework.jar、core.jar、ext.jar、framework-res.jar。framework.jar包是framework层java源文件编译的。core.jar是dalvik虚拟机运行时所需要的java运行库文件。ext.jar包含了一些可扩展的类库文件。framework-res.jar包含了framework中所使用的各种资源文件。”​

[也就是说framework目录下的那些子目录也不是全部编译到framework.jar中嘛,还有其他的,所以应该是要指定编译包括的子目录的。FRAMEWORK_BASE_SUBDIRS]​

******************************************************************************************8​

先来收集下在编译过程中遇到的问题:​

1. “build/core/binary.mk:586: recipe for target

'out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl_language_y.cpp'

failed​”

​是bison的问题,但是安装后还是报一样的错误:permission

denied。

然后注意到提示:这里使用的bison是framework下的,不是系统/usr/bin下的。果断去检查发现是rw的,且只是针对owner,然后chmod,再次运行,发现其它有几个:clang,flex,

glibc*-ar 等也是permission denied。遇到后就果断改chmod。

改后可以继续往下运行了。

​[假如编译的是framework-res.apk和framework.jar:那么在编译成功后提示:

install:

out/target/product/fugu/system/framework/framework-res.apk以及framework.jar

还有:make completed successfully.]

[另有些部分是在build系统那篇博文中]

编译完后如何作用在手机上呢?

使用adb push。

但这里有个问题,framework-res.apk,

framework.jar是在/system/framework目录下,而该目录要求root权限才可push。[尽管手机是root了的,但使用adb

push时还是会提示那个目录是read only,因为没有完全root。。。]

网上很多方法是remount,我试过后还是不行。那就曲线路径:

先push到sdcard,然后adb

shell进去,以su权限将sdcard的文件cp到/system/framework目录下。这里还有个问题:因为这些文件原来是存在的,所以要加参数-f,但我试过➕参数后还是不行。。。只能删掉后重新拷贝。​

[注]参考

http://blog.csdn.net/droyon/article/details/8655031​

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值