`
OliveExcel
  • 浏览: 70492 次
文章分类
社区版块
存档分类
最新评论

Android工程(AOSP)下对default java library新增库

阅读更多

疑问与解答:

1. 在AOSP编译过程中, 每个module, 都需要通过Android.mk, 配置编译module需要依赖的lib. 这个配置一般通过 LOCAL_JAVA_LIBRARIES 或者 LOCAL_STATIC_JAVA_LIBRARIES 实现;

2. 某些module, 如果不依赖特定的lib, 那么上述lib依赖关系的字段是可以不写的. 但是在这些module在编译过程中, 明显依赖了frameworks的一些接口, 但为什么不需要声明依赖关系?

3. 答案很简单很无聊: 系统帮你指定了默认的lib呗.

 

需求:

那么问题来了, 如果想往AOSP的默认lib里面, 添一个自己的lib, 要怎么实现?

 

实现:

简单粗暴的把代码放出来:

1. build/core/java.mk

...
LOCAL_JAVA_LIBRARIES := bla-bla Ted-New-Lib
...

上述代码中的Ted-New-Lib就是新增的lib.

注意该文件中, 存在多个对LOCAL_JAVA_LIBRARIES赋值的位置, 除了最后一个排序的, 其他都得这样修改.

 

2. build/target/product/core_minimal.mk

# The order of PRODUCT_BOOT_JARS matters.
PRODUCT_BOOT_JARS := \
    ...
    Ted-New-Lib
    ...

这部分代码放在minimal下不是optional的, 可以根据需求, 放在其他几个core_xxx.mk中.

 

3. frameworks/base/Android.mk

...
LOCAL_JAVA_LIBRARIES := bla-bla Ted-New-Lib
...

 

4. 其他配置了LOCAL_NO_STANDARD_LIBRARIES := true的module, 也同样需要follow第3点的修改.

 

原理:

晚点写.

发现某些网站会到iteye上面抓文章repost, 还不注明出处.

所以决定让它们先抓一个不完整的版本.

分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

Global site tag (gtag.js) - Google Analytics