有人可以告诉我如何将外部java框架包含到android框架中并将其编译为自定义android框架的一部分吗?
这个想法是让这个外部框架成为我自定义android框架的一部分,并将其作为android服务公开,供其他进程使用。
实质上我所做的是 -
framework/base/core/java/android/
这是编辑Android框架的正确方法吗?因为,我在Android框架中包含了java文件和外部项目的相关外部jar,我怀疑在将jar转换为dex时失败。
有人可以指出我处理Android Framework内部的任何可用资源以及如何编辑Android框架吗?
我在今年在中国北京举办的Marko Gargenta演讲中检查了youtube上的Tutorial: Android Internals - Building a Custom ROM, Pt. 2 of 2
。但他没有明确表示(即添加外部框架或罐子)。
答案 0 :(得分:4)
首先:我在Android构建过程中不是很有经验,所以可能有一个更好的解决方案,但这个应该有效(至少对于Android 2.2)。
我假设您使用Eclipse进行源代码修改并已经成功执行make -j4
...
external/<your-library>/src
<android>/frameworks/base/Android.mk
搜索# Build ext.jar
并按如下方式添加您的资料库:
[...]
ext_dirs := \
../../external/apache-http/src \
../../external/<your-library>/src \
../../external/gdata/src \
../../external/protobuf/src \
../../external/tagsoup/src
[...]
make -j4 ext
以仅构建外部模块make -j4
构建所有已更改的文件(如果/out/
中存在先前的版本)。答案 1 :(得分:1)
https://android.googlesource.com/platform/vendor/sample就是一个很好的例子。克隆它以查看示例是很好的。
基本上你需要创建jar文件并将其添加到文件系统中,将xml配置添加到/system/etc/permissions/
并在apk <uses-library>
中声明AndroidManifest.xml
。
就我而言,我在错误的地方(而不是<uses-library>
)添加<application>
时遇到了问题。
所以最好用以下方法检查结果:
$ aapt dump badging Foo.apk | grep uses-library
uses-library:'android.foo'