android mk学习-添加lib包

53 篇文章 2 订阅

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

LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
	
	# 应用名称
	LOCAL_PACKAGE_NAME := TestApp
	LOCAL_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.android

	LOCAL_PROPRIETARY_MODULE := true

include $(BUILD_PACKAGE)

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


LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

	LOCAL_PACKAGE_NAME := TestApp
	LOCAL_MODULE_TAGS := optional

	LOCAL_CERTIFICATE := platform
	LOCAL_PROGUARD_FLAG_FILES := proguard.cfg
	
	LOCAL_SRC_FILES := \
    	$(call all-java-files-under, src)
		
	# 指定每个 jar 包对应的名称,可以和 jar 包实际名称不同
	LOCAL_STATIC_JAVA_LIBRARIES := \
		mysdk \
		glide_3.7.0 \

	LOCAL_JAVA_LIBRARIES := \
    	com.mstar.android

	LOCAL_PROPRIETARY_MODULE := true

include $(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 \

# 编译多个 jar
include $(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
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值