Android预装第三方app
Android预装第三方app
- Android.mk
- device-common.mk
Android.mk
解压apk中的lib并对*.so库文件进行整体打包,PRESIGNED使用apk预签名
LOCAL_PATH := $(call my-dir)# qqmusic
include $(CLEAR_VARS)
LOCAL_MODULE := qqmusic
LOCAL_MODULE_CLASS := APPS
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE_SUFFIX := $(COMMON_ANDROID_PACKAGE_SUFFIX)
LOCAL_CERTIFICATE := PRESIGNED
LOCAL_SRC_FILES := $(LOCAL_MODULE).apk
APK_LibList :=
$(subst $(LOCAL_PATH)/$(LOCAL_MODULE)_uncompressedlibs,,\$(foreach FILE,$(shell unzip -l $(LOCAL_PATH)/$(LOCAL_SRC_FILES) 'lib/*.so'|grep 'arm'),$(eval APK_LibList += $(FILE))))ARM64_LIB := $(findstring arm64-v8a,$(APK_LibList))
ARMV7A_LIB := $(findstring armeabi-v7a,$(APK_LibList))
ARM_LIB := $(findstring armeabi,$(APK_LibList))ARCH_LIB := $(if $(TARGET_ARCH),$(if $(ARMV7A_LIB),$(ARMV7A_LIB),$(ARM_LIB)))
TARGET_BIT := $(if $(findstring arm64,$(ARCH_LIB)),64,32)
$(info $(LOCAL_MODULE) $(ARCH_LIB) $(TARGET_BIT))
PRIVATE_EMBEDDED_JNI_LIBS := 'lib/$(ARCH_LIB)/*.so'
$(info $(LOCAL_MODULE) $(PRIVATE_EMBEDDED_JNI_LIBS))LOCAL_32_BIT_ONLY := true
LOCAL_MULTILIB := 32JNI_LIBS :=
$(foreach FILE,$(shell if unzip -l $(LOCAL_PATH)/$(LOCAL_SRC_FILES) $(PRIVATE_EMBEDDED_JNI_LIBS) > /dev/null ; then \rm -rf $(LOCAL_PATH)/$(LOCAL_MODULE)_uncompressedlibs && \mkdir $(LOCAL_PATH)/$(LOCAL_MODULE)_uncompressedlibs; \unzip $(LOCAL_PATH)/$(LOCAL_SRC_FILES) $(PRIVATE_EMBEDDED_JNI_LIBS) -d $(LOCAL_PATH)/$(LOCAL_MODULE)_uncompressedlibs > /dev/null && \find $(LOCAL_PATH)/$(LOCAL_MODULE)_uncompressedlibs -name "*.so"; \fi),$(eval JNI_LIBS += $(FILE)))LOCAL_PREBUILT_JNI_LIBS := $(subst $(LOCAL_PATH),,$(JNI_LIBS))
include $(BUILD_PREBUILT)
device-common.mk
LOCAL_PATH := vendor/common
#app
PRODUCT_PACKAGES += qqmusic
在device/文件夹的device.mk中包含device-common.mk
include vendor/common/device-common.mk
Android预装第三方app相关推荐
- android 安装第三方app,Android识别预装的第三方App方法实例
前言 新买一台手机,里面会有很多App,有的属于系统App,不可卸载,有的属于第三方App,厂商会预装一些常用的或者给了他们广告费的App,这些是可以卸载的. 如果要详细划分,系统App还可根据其路径 ...
- Android 调用第三方 APP
本文导读 如果想要在 App 1 中调用 App 2 的 Activity1,则操作流程如下: 1)首先被调用的 App 2 中要声明 Activity1 是可以被启动的 或者 Activity 是对 ...
- Android调用第三方App Activity
在App A中调用App B的Activity1.需要做两方面的配置. (1)App B要表明,Activity1是对外可见的,或是可以被启动的Activity. 可在AndroidManifest. ...
- Android打开第三方APP
直接调appReRunning /*** 打开另一个app** @param context* @param packname*/public static int openOtherApp(Cont ...
- Android 启动第三方app
一:直接通过包名 ① Intent intent = getPackageManager().getLaunchIntentForPackage("com.test.mydemo" ...
- Android调用第三方App
参考资料: http://blog.csdn.net/yudajun/article/details/8512970 http://chroya.iteye.com/blog/724804 priva ...
- android实现第三方支付,Android开发第三方APP接入微信支付
前言 在APP中接入微信支付其实很简单,大部分工作主要都是后台完成,客户端只需要调用后台,得到后台返回的字符串后在调用微信的api即可.但是会有些坑,稍不注意就会掉坑里,下面会讲到. 一. 接入流程 ...
- Android 系统如何预装第三方应用以及常见问题汇集
从事系统开发工作的朋友都知道,手机厂商因为各种原因会在系统中预装一些第三方应用来作为手机的卖点或者额外的收入,但是随着Android 系统日益强大和完善,对一些应用的安全性和稳定性的要求也越来越高.下 ...
- android app 提高级别,android 关于提高第三方app的service优先级
本博客仅仅要没有注明"转".那么均为原创,转贴请注明本博客链接链接 基本上大家都知道提高service优先级能够在非常大程度上让你的service免于由于内存不足而被kill,当然 ...
最新文章
- python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例
- tf.data.Dataset.from_tensor_slices 的用法
- Spring Cloud Alibaba 一致性挑战:微服务架构下的数据一致性解决方案
- ETSafeMail安全电子邮件技术白皮书
- 用jquery ajax做的select菜单,选中的效果
- 51nod 1781 Pinball(线段树)
- TinyXML:一个优秀的C++ XML解析器
- 阿尔伯塔大学的计算机科学专业好吗,阿尔伯塔大学哪个专业好?三大热门方向成就高薪未来...
- matlab 自再现模,平行平面腔自再现模FoxLi数值迭代解法及MATLAB实现
- 拥抱创新,持续探索——对话阿里云MVP胡逢法
- php.ini设置详解
- 简单的Site to site ipsec ×××实验
- 【springmvc+mybatis项目实战】杰信商贸-14.购销合同添加+修改+删除+查看
- gif透明背景动画_软件|电脑GIF录制软件,强烈推荐!
- 补充STM32 PWM占空比,频率的计算及输入捕获细节到STM32库函数的掌握方法
- django 搜索功能的实现
- ChIP-seq实战 | 染色质免疫共沉淀技术 | ATAC-seq | 染色质开放性测序技术
- 观看2022年卡塔尔世界杯的感想
- 谈谈snprintf
- Android---TabLayout