`
fable0618
  • 浏览: 46720 次
  • 性别: Icon_minigender_2
  • 来自: 火星
文章分类
社区版块
存档分类

安卓系统集成第三方apk

 
阅读更多

项目集成所需文件清单,需拷贝至ANDROID_SOURCE/packages/app/PROJECT_NAME/目录下

PROJECT_NAME
    │  Android.mk
    │  AndroidManifest.xml
    ├─libs[若包含jar包、静态库或动态库]
    ├─res
    └─src

 

src、res、AndroidManifest.xml皆为普通应用程序会包含内容(项目下gen文件夹不要放进源码,会报错)以下主要对Android.mk做说明。直接上mk内容:

 

LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-subdir-java-files)
LOCAL_PACKAGE_NAME := testMid
LOCAL_CERTIFICATE := platform

include $(BUILD_PACKAGE)

 

 

 

1、外部jar包依赖

LOCAL_STATIC_JAVA_LIBRARIES := mirror androidsupport

include $(CLEAR_VARS)
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := mirror:libs/mirrorcastandroid4.jar androidsupport:libs/android-support-v4.jar

LOCAL_MODULE_TAGS := optional
include $(BUILD_MULTI_PREBUILT)

 

2、依赖动态库

LOCAL_PREBUILT_LIBS :=libjpeg-turbo:libs/armeabi/libjpeg-turbo.so liblinkyuv:libs/armeabi/liblinkyuv.so

 

以上注意参数 LOCAL_MODULE_TAGS := optional 的值,optional直接make时不会将相应的.so输出至system/lib下,对应TARGET_BUILD_VARIANT=eng的值(TARGET_BUILD_VARIANT指定编译形成的版本风格,一般发布时使用这个值,当然还有user、debuguser等风格值),即会输出

 

编译eng[即debug]版本和user[即release]版本会存在差异,可能遇到如下错误

错误一:

 

build/core/base_rules.mk:64: *** Module name: libjpeg-turbo
build/core/base_rules.mk:65: *** Makefile location: packages/apps/*****/Android.mk
build/core/base_rules.mk:66: *
build/core/base_rules.mk:67: * Module is attempting to use the 'user' tag.  This
build/core/base_rules.mk:68: * used to cause the module to be installed automatically.
build/core/base_rules.mk:69: * Now, the module must be listed in the PRODUCT_PACKAGES
build/core/base_rules.mk:70: * section of a product makefile to have it installed.
build/core/base_rules.mk:71: *
build/core/base_rules.mk:72: *** user tag detected on module..  Stop.
 

 

如log输出详细所示,系统依赖库需要在PRODUCT_PACKAGES中作声明,即需修改build/target/product/generic_*.mk文件[generic_no_telephony.mk]

# my product apps
PRODUCT_PACKAGES += \
    libktuart \
    libBT \
    libOUT \
    libUpdate \    
    libjpeg-turbo

 

错误二:

Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlSerializer
Warning: library class android.util.Xml depends on program class org.xmlpull.v1.XmlPullParser
Note: there were 5 unresolved dynamic references to classes or interfaces.
      You should check if you need to specify additional program jars.
Note: there were 2 class casts of dynamically created class instances.
      You might consider explicitly keeping the mentioned classes and/or
      their implementations (using '-keep').
Note: there were 2 accesses to class members by means of introspection.
      You should consider explicitly keeping the mentioned class members
      (using '-keep' or '-keepclassmembers').
Warning: there were 78 instances of library classes depending on program classes.
         You must avoid such dependencies, since the program classes will
         be processed, while the library classes will remain unchanged.
Error: Please correct the above warnings first.
make: *** [out/target/common/obj/APPS/******_intermediates/proguard.classes.jar] Error 1
make: Leaving directory `/home/android'

 

错误二解决:

发生以上错误是由于编译release版本时默认会对所有应用程序进行混淆编译,某些文件所包含的警告信息不允许存在。可进行混淆配置,先修改Android.mk,可选择关掉系统对当前app的混淆,或自定义混淆配置文件proguard-project.txt

#LOCAL_PROGUARD_ENABLED := disabled
LOCAL_PROGUARD_FLAG_FILES := proguard-project.txt

 

proguard-project.txt文件内容

1、忽略警告提示。如项目工程内有加入安卓源码,并存在修改,如下

-dontwarn android.hardware.usb.**

2、部门java类不需要做混淆。如某些方法是native jni方法,或某些方法是给c层调用,无需做混淆:

-keep class com.test.TestNative{*;}

分享到:
评论

相关推荐

    安卓反汇编工具 APK 改之理 Apk IDE 3.5.0 中文绿色免费版.zip

    搜索功能是Apk修改的一个重要工具,从此你不必借助其它第三方搜索工具。 内置Google在线翻译引擎,支持实时翻译,支持所有Google支持的几十国语言对译,汉化更轻松。 支持使用自己的keystore文件签名。 自动识别图像...

    apk文件 (乐天固件)百事通R3300L、创维E900V21C、数讯Q5、Q7-晶晨S905L、B芯片-当贝桌面-安卓4.4

    apk文件 (乐天固件)百事通R3300L、创维E900V21C、数讯Q5、Q7-晶晨S905L、B芯片-当贝桌面-安卓4.4.2-线刷固件-压缩包里含线刷包、刷机工具和刷机教程-无竞品APK集成(电视直播视频)apk文件 (乐天固件)百事通R3300L、...

    UnifiedNlp:适用于Android的备用网络位置提供程序,具有用于轻松集成第三方位置提供程序的插件界面

    统一网络位置提供者 基于插件的下一代网络... 还有另一个存储库,其中包含带插件系统的NetworkLocation.apk的。 项目已经包含统一网络位置提供程序。Android 4.4-7.1.1(奇巧/棒棒糖/棉花糖/牛轧糖) 大多数现代ROM都

    ApkIDE——安卓反编译

    搜索功能是Apk修改的一个重要工具,从此你不必借助其它第三方搜索工具。 5、内置Google在线翻译引擎,支持实时翻译,支持所有Google支持的几十国语言对译,汉化更轻松。 6、自动识别图像资源,并提供该类资源的快捷...

    Android仿QQ项目

    该项目是仿QQ的Android小项目,实现登录注册,添加好友,即时聊天,修改密码等功能。使用MySQL5.6数据库,即时聊天通过集成网易云信实现,聊天界面可调用系统相机,但视屏聊天,语音通话,发送图片等功能未实现

    新版Android开发教程.rar

    � 由于采用了 Java 作为应用开发语言,目前可用的传统第三方应用还很少,但由于 Android 是一款完全 开 源的移动计算平台,相信第三方应用会很快的丰富起来。 � Google 提供了一套 Java 核心包 (J2SE 5,J2SE 6) 的...

    天猫魔盒M13刷机工具USB_BurningTool_v2.1.2.13支持64位cpu

    固件是基于ASOP、Uboot源码编译及第三方固件精心优化而来,非官方Logo和无运营商相关信息,未集成其他APK,系统纯净 其他优化自行体验,固件支持启动基于LibreELEC的Linux系统(如lakka)。开启S905满血状态,增加...

    Android热更新开源项目Tinker集成实践总结

    2、第三方提供的服务,目前如原微信simsun大神的个人tinkerpatch平台,目前出于内测阶段,暂时免费。后期应该会按下发量对app进行收费。 3、腾讯Bugly提供的服务,提供了热更新的下发后台,集成到了bugly的升级sdk中...

    网狐荣耀版开发使用常见问题解答

    这个主要是第三方的类库与cocos2d-x的支持文件没有加载的原因造成,加载了就可以正常运行了。 十、网狐荣耀版手机端分享时出现“由于不支持的分享类型,无法分享到微信“的解决办法 去腾讯开放平台申请账号,...

    斐讯盒子.zip

    前话:虽然昨天发过一个版本,但跟网友webpad了产生一些误解,在此,表示抱歉。 今天重新做分区文件的同时,加强了官方固件的一些不足,...7.默认自制桌面,可自行安装其它第三方桌面; 8.开机默认开启adb调试模式。

    CallHippo-Virtual Phone System-crx插件

    呼叫将通过网络浏览器很好地接收,并且您的任何信息都不会被CallHippo或任何第三方服务器泄漏。 这就是与CRM结合使用的方式。CallHippo基于云的电话系统如何使您的帮助台软件变得更好? 您还可以使用售票软件使用...

Global site tag (gtag.js) - Google Analytics