android7.0后对于detected problems with app native libraries提示框显示
log信息:
03-27 09:08:25.887 397 400 W linker : /data/app/com.guagua.qiqi-1/lib/arm/libMedia.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
03-27 09:08:26.807 397 400 W linker : /data/app/com.guagua.qiqi-1/lib/arm/libMedia.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
此log信息在android早期版本也会存在,但是在UI上不会有任何提示。
在7.0和7.1有新加如下的code:
/frameworks/base/core/java/android/app/Activity.java
final void performStart(){
...
6689
6690 // This property is set for all builds except final release
6691 boolean isDlwarningEnabled = SystemProperties.getInt("ro.bionic.ld.warning", 0) == 1;
6692 boolean isAppDebuggable =
6693 (mApplication.getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0;
6694
6695 if (isAppDebuggable || isDlwarningEnabled) {
6696 String dlwarning = getDlWarning();
6697 if (dlwarning != null) {
6698 String appName = getApplicationInfo().loadLabel(getPackageManager())
6699 .toString();
6700 String warning = "Detected problems with app native libraries\n" +
6701 "(please consult log for detail):\n" + dlwarning;
6702 if (isAppDebuggable) {
6703 new AlertDialog.Builder(this).
6704 setTitle(appName).
6705 setMessage(warning).
6706 setPositiveButton(android.R.string.ok, null).
6707 setCancelable(false).
6708 show();
6709 } else {
6710 Toast.makeText(this, appName + "\n" + warning, Toast.LENGTH_LONG).show();
6711 }
6712 }
6713 }
对于有dlwarning的app,如果此app是debuggable模式或系统ro.bionic.ld.warning属性为1,那么会给app提示(以对话框的方式),需要完善或优化so库。
android7.0后对于detected problems with app native libraries提示框显示的更多相关文章
- Android7.0后JNI库必须保留Section Headers
此修改在官网的描述如下: Each ELF file has additional information contained in the section headers. These header ...
- android7.0后对于file://的限制
错误信息: 04-18 14:56:58.283 4440 4440 W System.err: android.os.FileUriExposedException: file:///stora ...
- Appirater -- app中提示用户为app评价的提示框
Appirater是一段你可以嵌入自己工程中的代码,在用户使用应用一段时间后会自动弹出提示用户进行评分. 使用Appirater方面,你可以简单把源代码嵌入你的app工程中,并把以下代码添加至它的委托 ...
- ASP.NET div信息提示框显示几秒后隐藏
今天在旧系统中,用户要求,要把一个javascript alert的信息提示,改为Div tag来显示,它在显示时,仅显示几秒,然后隐藏,这样无需用户去点击alert信息框的确定或是关闭铵钮. 下面I ...
- 拍照、本地图片工具类(兼容至Android7.0)
拍照.本地图片工具类:解决了4.4以上剪裁会提示"找不到文件"和6.0动态授予权限,及7.0报FileUriExposedException异常问题. package com.hb ...
- Android7.0 多窗口你值得拥有
Android7.0 多窗口你值得拥有 什么是多窗口分屏? 多窗口分屏其实在国内并不陌生,已经有一些手机和平板搭载了"分屏多任务"和"APP窗口化"功能,但这些 ...
- 【转】Android7.0适配心得
本文出自:贾鹏辉的技术博客(http://www.devio.org) http://www.devio.org/2016/09/28/Android7.0%E9%80%82%E9%85%8D%E5% ...
- Android7.0调用系统相机拍照、读取系统相册照片+CropImageView剪裁照片
Android手机拍照.剪裁,并非那么简单 简书地址:[我的简书–T9的第三个三角] 前言 项目中,基本都有用户自定义头像或自定义背景的功能,实现方法一般都是调用系统相机–拍照,或者系统相册–选择照片 ...
- Android7.0 Doze模式分析(一)Doze介绍 & DeviceIdleController
參考:http://blog.csdn.net/gaugamela/article/details/52981984 在Android M中.Google就引入了Doze模式.它定义了一种全新的 ...
随机推荐
- vue --》watch 深度监听的优化。
话不多说,直接上代码,注释很清楚 <template> <div> <input type="text" v-model="value&qu ...
- Idea maven远程调试(pom配置tomcat)
服务器端,maven内置tomcat启动命令:mvnDebug clean tomcat7:run -Dmaven.test.skip=true 服务器端:配置(vim或者文件模式打开mvnDebug ...
- oracle--对象权限
sys用户查询ww用户创建的表(已经commited) select * from ww.wwTable; 普通用户lisi查询ww用户的表 grant select on wwTable to li ...
- linux驱动模型——platform(1)
一.驱动模型包含什么? 1.1. 类class 1.1.2. 它能够自动创建/dev下的设备节点,不需要mknod /dev/xxx c x x创建.当然class还有其另外的作用,且自动创建设备节点 ...
- make: *** 没有指明目标并且找不到 makefile
make: *** 没有指明目标并且找不到 makefile. 停止. make: *** 没有规则可以创建目标“install”. 停止. 不是没有makefile文件,而是你没有安装gcc编译 ...
- mysql事务的特性?
1.原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执 行. 2.一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的 ...
- Educational Codeforces Round 60 (Rated for Div. 2) D. Magic Gems(矩阵快速幂)
题目传送门 题意: 一个魔法水晶可以分裂成m个水晶,求放满n个水晶的方案数(mol1e9+7) 思路: 线性dp,dp[i]=dp[i]+dp[i-m]; 由于n到1e18,所以要用到矩阵快速幂优化 ...
- 省流量 转:http://www.wtoutiao.com/p/T3b8it.html
前言:“客户端上传时间戳”的玩法,你玩过么?一起聊聊时间戳的奇技淫巧! 缘起:无线时代,流量敏感.APP在登录后,往往要向服务器同步非常多的数据,很费流量,技术上有没有节省流量的方法呢?这是本文要讨论 ...
- 深入理解js闭包【写的通俗易懂,很值的阅读】
详细内容在下面这个链接里面: https://www.cnblogs.com/uedt/archive/2010/10/28/1863389.html 能写出这样的文章,定是大佬!
- node开发一个接口详细步骤
最近在做后台系统改版,由于目前接口还没出来,就自己用nodejs写了个简单的接口. 我这里用的是nodejs+mysql的 这里不讲nodejs和mysql的安装.这些基础略过. 首先创建文件夹.cd ...