Android源码树添加新的APP(含第三方so、jar)
来源:互联网 发布:伊皇喷剂淘宝有卖吗 编辑:程序博客网 时间:2024/06/09 22:13
1.将android工程(在eclipse中先编译通过)拷贝到alps/packages/apps文件夹下
2.加入so文件(第三方的)
在Android工程统计目录下新建文件夹eg:abc,把需要用到的so文件拷贝到其中,在abc文件夹下新建Android.mk,内容如下:
#usgeLOCAL_PATH := $(call my-dir) #调用此文件夹,将编译进行到此文件夹内include $(CLEAR_VARS) #清除在次之前的编译环境LOCAL_MODULE_TAGS := optional #编译选项:optional代表任何情况下都编,eng、user代表只有用户编译相应系统版本时才会编译此文件夹内容LOCAL_MODULE := libexample.so #第三方so文件LOCAL_MODULE_CLASS := SHARED_LIBRARIES #编译后so文件输出的位置:SHARED_LIBRARIES代表输出到alps/out/target/product/${project}/system/lib下#ETC 表示放在/system/etc/下 EXECUTABLES表示放在/system/bin/下LOCAL_SRC_FILES := $(LOCAL_MODULE) #上边的so文件重新预编译LOCAL_MODULE_PATH := $(TARGET_OUT)/lib #重新指定预编译输出的位置,具体与LOCAL_MODULE_CLASS区别,请百度include $(BUILD_PREBUILT) #预编译注意:#如果有多个so文件,需要复制以上内容#完成以上步骤时,可以./mk mm package/apps/${project}通过,如果想在系统编译时生成,需要在alps/build/target/product/下的core.mk 或者common.mk # 或者 telephony.mk中的PRODUCT_PACKAGES += ${name of your app} 此处的名字要与Android.mk中的LOCAL_PACKAGE_NAME一致。
3.预编译的目的是将so文件放在相应的位置,打包后供app调用(会在手机的system/lib下找到你的so文件);另外也可以直接拷贝第三方的so库到product/${project}/system/lib中,然后./mk snod 加入android中,然后打包./mk bootimage,烧录后你会在手机system/lib中找到你拷贝的so库文件,但重新编译系统是需要重新拷贝,因为编译时会clean
4.加入jar文件(第三方的)
将jar文件拷贝到package/apps/${your APP project}/libs/中,在Android工程目录中新建Android.mk,如下:
#Android.mkLOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(call all-java-files-under, src)LOCAL_PACKAGE_NAME := xxxLOCAL_CERTIFICATE := platformLOCAL_JNI_SHARED_LIBRARIES := libxxx\libxxxLOCAL_STATIC_JAVA_LIBRARIES := xyz \qaxz \ wsxinclude $(BUILD_PACKAGE) #以上内容编译成apkinclude $(CLEAR_VARS)LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := xyz:libs/xyz.jar \ #指定jar实际在android工程的路径 qaxz:libs/qaxz.jar \ wsx:libs/wsx.jarinclude $(BUILD_MULTI_PREBUILT) #预编译 具体参数请百度include $(call all-makefiles-under,$(LOCAL_PATH)) #调用android工程下的子目录中的mkaefile
5.如果编译出错,请按照log修改,一般出现:没有规则创建xxx,需要目标xxx,请先确认需要xxx的文件是否已包含或者预编译到相应的路径下
出现java文件中找不到某个类的定义,请先确认这个类在哪个jar包内,确认jar是否在正确的路径内
出现:MODULE.TARGET.JAVA_LIBRARIES.android-support-v4 already defined by frameworks/support/v4。 停止。则需要在
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES中去掉android-support-v4.jar因为系统中已经定义过了,但是LOCAL_STATIC_JAVA_LIBRARIES中需要加上,因为你的APP编译时需要
0 0
- Android源码树添加新的APP(含第三方so、jar)
- Android Studio添加第三方库(.jar && .so)
- Android Studio 添加第三方库的6种方式(Jar,module,so等)
- android添加第三方apk 引用jar和so
- android 源码中新模块中添加第三方jar包
- [Android Studio 权威教程]AS添加第三方库的6种方式(Jar,module,so等)
- [Android Studio 权威教程]AS添加第三方库的6种方式(Jar,module,so等)
- [Android Studio AS添加第三方库的6种方式(Jar,module,so等)
- [Android Studio 权威教程]AS添加第三方库的6种方式(Jar,module,so等)
- AS添加第三方库的6种方式(Jar,module,so等)
- AS添加第三方库的6种方式(Jar,module,so等)
- android studio 如何加载第三方的jar和so
- Android.mk集成第三方jar与so的方法
- Android中集成第三方软件包(.jar, .so)
- Android中集成第三方软件包(.jar, .so)
- Android中集成第三方软件包(.jar, .so) .
- Android中集成第三方软件包(.jar, .so)
- Android中集成第三方软件包(.jar, .so)
- 在 Android 中主线程如何给子线程发 Message?
- OpenStack网络指南(25)路由提供商网络
- 第一个 Spring Boot 程序 : 文件上传
- HTML基本属性
- select与datalist在制作下拉菜单时的区别
- Android源码树添加新的APP(含第三方so、jar)
- Java程序员到架构师的推荐阅读书籍
- bool 和 bitset的区别
- Debian8安装内核源码
- jenkins中通过execute shell启动的进程会被杀死的问题
- Struts2中redirect基本的经验之谈
- docker 必杀技
- ORACLE-ASM
- 故事点数是对工时的度量