做系统开发,某些系统应用会引用第三方 jar 包,本文演示如何在 makefile 中导入第三方 jar 包。
原应用的 mk 如下

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)# 应用名称LOCAL_PACKAGE_NAME := TestAppLOCAL_MODULE_TAGS := optional# 打系统签名LOCAL_CERTIFICATE := platform# 指定混淆文件LOCAL_PROGUARD_FLAG_FILES := proguard.cfg# 指定 src 目录LOCAL_SRC_FILES := \    $(call all-java-files-under, src)# rom 厂商的包,与本例关联不大LOCAL_JAVA_LIBRARIES := \    com.xxx.androidLOCAL_PROPRIETARY_MODULE := trueinclude $(BUILD_PACKAGE)

jar 包放到 libs/ 目录下,修改如下

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)LOCAL_PACKAGE_NAME := TestAppLOCAL_MODULE_TAGS := optionalLOCAL_CERTIFICATE := platformLOCAL_PROGUARD_FLAG_FILES := proguard.cfgLOCAL_SRC_FILES := \    $(call all-java-files-under, src)# 指定每个 jar 包对应的名称,可以和 jar 包实际名称不同LOCAL_STATIC_JAVA_LIBRARIES := \mysdk \glide_3.7.0 \LOCAL_JAVA_LIBRARIES := \    com.mstar.androidLOCAL_PROPRIETARY_MODULE := trueinclude $(BUILD_PACKAGE)include $(CLEAR_VARS)#指定 jar 包路径LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES += \mysdk:libs/opensdk.jar \glide_3.7.0:libs/glide-3.7.0.jar \# 编译多个 jarinclude $(BUILD_MULTI_PREBUILT)include $(call all-makefiles-under,$(LOCAL_PATH))

如果要引用系统源码的包,可参考如下添加:

LOCAL_STATIC_JAVA_LIBRARIES := \    android-support-v7-appcompat \    android-support-design \    android-support-v13 \    android-support-v4 \    android-support-v7-recyclerview \android-support-v7-recyclerview-res \

编译烧录,测试OK。如果碰到 crash ,可能是混淆导致的,可参照 jar 包提供商添加对应的混淆规则,修改指定的混淆文件 LOCAL_PROGUARD_FLAG_FILES := proguard.cfg

-keep public class * extends android.app.Activity-keep public class * extends android.app.Application-keep public class * extends android.app.Service-keep public class * extends android.content.BroadcastReceiver-keep public class * extends android.content.ContentProvider-keep public class * extends android.app.backup.BackupAgentHelper-keep public class * extends android.preference.Preference-keep public class * extends android.os.Binder# 不混淆 aidl 相关类-keep class * implements android.os.IInterface-keep class * implements android.os.Parcelable {public static final android.os.Parcelable$Creator *;}# 不混淆 SDK 相关类-keep class com.xxxxxx.yyyy.open.** { *;}-keep public class * extends android.app.Service

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. Nginx系列教程(六)| 手把手教你搭建 LNMP 架构并部署天空网络电影
  6. Android更新出这个错,解决
  7. android 如何使用jar替换java代码编译
  8. Android下AlarmManager完整调用流程
  9. Android中不用Service跨Avtivity仍然可以播放音乐的一个简单方法

随机推荐

  1. android左侧滑效果
  2. 通用的使用Frida旁路Android(安卓)SSL Pi
  3. Android(安卓)浏览网页
  4. JNI Examples for Android
  5. Android系统设置【android.provider.sett
  6. android_intent
  7. Android文件下载
  8. Android版本检测\自动更新 (转的别人的)
  9. Android判断当前网络类型是否为5G
  10. Android(安卓)代码监控apk安装,卸载,替换