自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

thinkinwm的专栏

All I see is blackness. Oh, my hood's down.

转载 Android应用内存泄露分析、改善经验总结

https://www.jianshu.com/p/33d3f89f7941前言通过这几天对好几个应用的内存泄露检测和改善,效果明显: 完全退出应用时,手动触发GC,从原来占有内存100多M降到低于20M; 手动触发GC后,通过adb shell dumpsys meminfo packagename -d查看Activity和View的数量也趋近于0了(没有做到归零...

2019-04-24 09:36:23 84

转载 android O 对后台服务的限制

https://www.jianshu.com/p/1af2ce1f985c现象android o版本(8.0)及以上版本,当应用处于后台时执行startService时,会抛出如下异常:imageCaused by: java.lang.IllegalStateException: Not allowed to start service ... app is in b...

2019-04-10 10:58:34 285

转载 开发者选项中动画时长原理分析(Android M)

https://blog.csdn.net/guoqifa29/article/details/50458101 一、简介    开发者选项中提供了“窗口动画缩放”、“过渡动画缩放”、“动画程序时长缩放”三个可供调整动画时长的菜单项。单从名字上很难分辨出这三个选项作用目标是啥,我们先把系统语言调整为English,对应于“Window animation scale”、"Transiti...

2019-02-27 15:54:02 3227

转载 Android 外置 SD 卡写入权限问题

https://busy.im/post/android-sdcard-write/ 最近升级到 Android 9.0 后,发现文件管理器在写入外置 SD 卡时出现了写入失败的问题,定位到 File.canWrite() 方法,发现返回了 false。经过讨论追踪定位,发现是由于 Google 的一个更改导致的:diff --git a/data/etc/platform.xml ...

2019-02-01 13:36:29 1851 1

转载 This must be due to duplicate classes or playing wrongly with class loaders

https://www.cnblogs.com/androidga/p/9559140.html Google在Android P中添加了新的检测项,对国内大多数应用造成了严重影响:在调用resolve inline method时,如果检测到caller与callee处于不同的dex file,会主动发起abort(inline不允许跨dex文件),导致应用出现闪退等异常问题。1、问...

2018-11-26 16:23:34 790

转载 电量分析工具 Battery Historian 的配置及使用

https://blog.csdn.net/zeqiao/article/details/77504477  

2018-11-07 15:49:24 115

转载 Android ABI issue analysis

链接:https://www.jianshu.com/p/18a8a4e6af3f 什么是ABIABI 全称 application binary interface,是一个机器语言级别的接口,描述的是二进制代码之间的兼容关系,这也意味着一起工作的二进制组件是ABI兼容的。一个SO库想要调用另一个SO库的函数,就要求它们的ABI兼容。Stack overflow上有一个以API为类比来...

2018-09-21 18:22:24 256

转载 Android O 开始,特许权限白名单

https://source.android.google.cn/devices/tech/config/perms-whitelist?hl=zh-cn特许权限白名单特权应用是位于系统映像 /system/priv-app 目录下的系统应用。过去,设备实现人员几乎无法控制可以向特权应用授予哪些签名|特许权限。从 Android 8.0 开始,实现人员可以将特权应用显式加入到 /etc/p...

2018-09-01 14:59:28 2956

转载 AndroidO Treble架构分析

https://blog.csdn.net/yangwen123/article/details/79835965 从AndroidO开始,google引入了Treble架构,目的是为了方便系统升级,将oem定制的东西和Framework分离。AndroidO之前的版本:在此之前的Android系统架构当中,Android Framework与Android HAL是打包成一...

2018-08-31 18:39:55 93

转载 AndroidO Treble架构下的变化

https://blog.csdn.net/yangwen123/article/details/79836109 AndroidO引入Treble架构后,有那些变化呢?1. 增加了多个服务管家,AndroidO之前版本有且只有一个servicemanager,现在增加到3个,他们分管不同的服务。2.增加了binder通信库,这是为了适配binder域的扩展。3.增加了bi...

2018-08-31 18:39:07 214

转载 配置 ART

https://source.android.google.cn/devices/tech/dalvik/configure?hl=zh-cn 本页面介绍了如何配置 ART 及其编译选项。讨论的主题包括:系统映像预编译配置、dex2oat 编译选项,以及如何在系统分区空间、数据分区空间和性能这三者之间取得平衡。请参阅 ART 和 Dalvik、Dalvik 可执行文件格式,以及 sou...

2018-08-31 18:35:19 675

转载 Validating SELinux

Validating SELinuxAndroid strongly encourages OEMs to test their SELinux implementations thoroughly. As manufacturers implement SELinux, they should apply the new policy to a test pool of devices fi...

2018-08-16 09:23:57 103

转载 Java JDK1.8新特性

https://blog.csdn.net/zhy981167180/article/details/37777759 一、lambda含义    lambda表示数学符号“λ”,计算机领域中λ代表“λ演算”,表达了计算机中最基本的概念:“调用”和“置换”。在很多动态语言和C#中都有相应的lambda语法,这类语法都为了简化代码,提高运行效率。 二、lambda 项目的背景,参...

2018-08-04 15:17:28 441

转载 jdk1.8 新特性之 lambda表达式

https://blog.csdn.net/dounine/article/details/70546625 我们首先看一个java实现多线程的lambda表达式的例子常规Runnable runnable = new Runnable(){ @Override public void run() { ...

2018-08-04 14:41:13 82

转载 应用程序安装流程

https://maoao530.github.io/2017/01/18/package-install/ 本文介绍APK的安装流程。一、安装流程图APK安装流程,总体可以下图流程,用ProcessOn画的,凑合看:从上图我们可以看到apk安装到最后都会调用到这个flow:PMS.scanPackageTracedLI => PMS.scanPackage...

2018-07-30 15:43:23 2720

转载 linux系统下proc文件系统内容

http://www.cnblogs.com/cute/archive/2011/04/20/2022280.html 另外,可以参考这个http://www.centos.org/docs/5/html/5.1/Deployment_Guide/ch-proc.html内容摘要:Linux系统上的/proc目录是一种文件系统,即proc文件系统。Linux系统上的/proc目录是一...

2018-07-18 16:02:11 111

转载 protected-broadcast 的一些细节

https://blog.csdn.net/u013553529/article/details/78409382protected-broadcast 的一些细节★ 1. 引言注:本文中提及的“广播(Broadcast)”,“广播事件”和“Action”的意思大致相同。发送广播(sendBroadcast)也是发送一个指定的action给BroadcastReceiver。在本文中不严格区分“广...

2018-06-18 17:51:39 267

转载 PackageManagerService中的方法名中的LI、LIF、LPw、LPr的含义

https://blog.csdn.net/u013553529/article/details/61962439PackageManagerService中的方法名中的LI、LIF、LPw、LPr的含义注1:本文参考Android 7.1.1r13源码中的PackageManagerService的说明。 这个说明在Android6.0.1中是没有的。注2:本文中PackageManagerSe...

2018-06-18 17:35:21 322

转载 Android 权限的一些细节

https://blog.csdn.net/u013553529/article/details/531670721 哪些app属于system app?为了区分privilege app和system app,这里先说明system app是什么,避免之后的讨论概念混乱。在PackageManagerService中对是否是system app的判断: 具有ApplicationInfo.FLA...

2018-06-18 15:01:38 308

转载 Android 4.4 KitKat NotificationManagerService使用详解与原理分析(二)__原理分析

http://blog.csdn.net/yihongyuelan/article/details/41084165前置文章:《Android 4.4 KitKat NotificationManagerService使用详解与原理分析(一)__使用详解》转载请务必注明出处:http://blog.csdn.NET/yihongyuelan概况

2017-06-29 17:40:31 321

转载 Android 4.4 KitKat NotificationManagerService使用详解与原理分析(一)__使用详解

http://blog.csdn.net/yihongyuelan/article/details/40977323概况        Android在4.3的版本中(即API 18)加入了NotificationListenerService,根据SDK的描述(AndroidDeveloper)可以知道,当系统收到新的通知或者通知被删除时,会触发Notificat

2017-06-29 17:37:35 352

转载 android GMS认证之CTS 常用命令

http://blog.csdn.net/hfreeman2008/article/details/51084821前面的一篇文章CTS测试命令详细>>全面的讲解了几乎所有的CTS命令的使用,其实我们平时用的就是一些常用的几条命令而已。这篇文章我列了一下常用的CTS命令,可以不夸张的说,只要你掌握了下面的这些命令的使用,CTS的命令使用,你完全可以是得心应手。我没有骗你

2017-03-28 10:55:35 626

转载 Linux vmstat命令实战详解

http://www.cnblogs.com/ggjucheng/archive/2012/01/05/2312625.htmlvmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令,一个是Linux/Unix都支持,二是相

2017-01-26 11:56:52 341

转载 Android 自带的应用统计服务(UsageStatsService)

http://light3moon.com/2015/01/31/%E5%B7%A5%E4%BD%9C%E5%B0%8F%E7%AC%94%E8%AE%B0%E2%80%94%E2%80%94Android%20%E8%87%AA%E5%B8%A6%E7%9A%84%E5%BA%94%E7%94%A8%E7%BB%9F%E8%AE%A1%E6%9C%8D%E5%8A%A1[UsageStatsSe

2016-10-12 17:03:17 5159 3

转载 Android编译带有第三方jar包的软件。

http://blog.csdn.net/gieghia007/article/details/5662220在Android里运行此命令。$:make myapp make: *** No rule to make target `out/target/common/obj/JAVA_LIBRARIES/juniversalchardet_inte

2016-09-12 14:41:45 685

转载 Activity启动流程分析(基于android 5.1)

http://blog.csdn.net/turkeycock/article/details/50538971最近由于工作需要,需要深入了解AMS的内部实现。说老实话,虽然已经经过了几轮重构,AMS的代码还是又臭又长。。。万事开头难,先找个入口开始看吧。当从Launcher界面点击启动一个app时,会启动一个新的activity。所以就从startActivity

2016-09-08 14:54:20 539

转载 Activity启动过程源码分析

http://blog.csdn.net/u014486880/article/details/50491406?locationNum=14其实写分析源码文章总会显得很复杂很乏味,但是梳理自己看源码时的一些总结也是一种提高。这篇博客分析下Activity启动过程源码,我会尽量说得简单点。个人的观点是看源码不能看得太细,否则就会花费很多时间并很难理清整个过程。所以本次分析重在理

2016-09-08 14:23:57 472

转载 Android Service演义(android 5.1)

http://my.oschina.net/youranhongcha/blog/710046#navbar-header1.概述在Android平台上,那种持续性工作一般都是由service来执行的。不少初学者总是搞不清service和线程、进程之间的关系,这当然会影响到他们开展具体的开发工作。其实,简单说起来,service和线程、进程是没什么关系的。我们知道,

2016-09-01 14:17:22 698

转载 说说Android应用的persistent属性

http://my.oschina.net/youranhongcha/blog/269591#navbar-header1 启动persistent应用    在Android系统中,有一种永久性应用。它们对应的AndroidManifest.xml文件里,会将persistent属性设为true,比如:<application android:name="Phone

2016-09-01 13:40:59 830

转载 Android Framewoks << 写的很好

http://my.oschina.net/youranhongcha/blog

2016-08-31 17:27:25 312

转载 Broadcast内部机制讲解 << 推荐

http://my.oschina.net/youranhongcha我们在编写Android程序时,常常会用到广播(Broadcast)机制。从易用性的角度来说,使用广播是非常简单的。不过,这个不是本文关心的重点,我们希望探索得再深入一点儿。我想,许多人也不想仅仅停留在使用广播的阶段,而是希望了解一些广播机制的内部机理。如果是这样的话,请容我斟一杯红茶,慢慢道来。

2016-08-30 17:29:13 384

转载 ReentrantLock(重入锁)以及公平性

http://ifeve.com/reentrantlock-and-fairness/简介ReentrantLock的实现不仅可以替代隐式的synchronized关键字,而且能够提供超过关键字本身的多种功能。这里提到一个锁获取的公平性问题,如果在绝对时间上,先对锁进行获取的请求一定被先满足,那么这个锁是公平的,反之,是不公平的,也就是说等待时间最长的线程最有机会

2016-08-29 14:12:31 351

转载 Activity启动过程全解析 <<主要流程说的并不完整,只有一半,有张流程图可以参考

http://dalufan.com/2015/11/24/android-Activity-launch-learn/0x00 前言一个App是怎么启动起来的?App的程序入口到底是哪里?Launcher到底是什么神奇的东西?听说还有个AMS的东西,它是做什么的?Binder是什么?他是如何进行IPC通信的?Activity生命周期到底是什么时候调用的?被谁调用的?等

2016-08-24 16:01:12 977

转载 Android ActivityThread(主线程或UI线程)简介

http://blog.csdn.net/myarrow/article/details/142234931. ActivityThread功能    它管理应用进程的主线程的执行(相当于普通Java程序的main入口函数),并根据AMS的要求(通过IApplicationThread接口,AMS为Client、ActivityThread.ApplicationT

2016-08-24 14:23:10 464

转载 Android应用的uid和pid

http://blog.csdn.net/u012481172/article/details/51095658   大家在用开发工具连接手机时一定见过下图的进程编号:    PID和UID存在的意义        Pid是进程ID,Uid是用户ID,只是Android和计算机不一样,计算机每个用户都具有一个Uid,哪个用户start的程序,这个程序的Uid

2016-08-24 14:18:52 386

转载 Android ActivityManagerService(AMS)的启动分析 << 代码讲的比较细致,在了解主要流程后再看这篇

http://blog.csdn.net/baniel01/article/details/51777580Android中的AMS想必是做android开发的工程师耳熟能详的系统级别的服务,但是它又是如此地庞大(单单ActivityManagerService.java文件就2W+行代码),因此我们在学习它的时候总是不能找到实际的主线,很是混乱。这里我会连续写几篇文章从它

2016-08-23 18:02:19 345

转载 对FLAG_ACTIVITY_FORWARD_RESULT的处理

http://blog.csdn.net/windskier/article/details/7096521startActivityLocked()方法在创建ActivityRecord前,还做了如下几不操作:    1. 确定sourceRecord和resultRecord,这两个变量均为ActivityRecord类型,前者代表请求启动当前activity的

2016-08-22 17:04:40 2172

转载 android-权限分析

https://github.com/cheyiliu/All-in-One/wiki/android-%E6%9D%83%E9%99%90%E5%88%86%E6%9E%90android permission权限模型在用户端看到的权限是: permission+签名在linux端看到的权限是: uid+gid权限如何生效在framework层

2016-08-19 16:55:51 420

转载 Android权限机制 << 推荐阅读

一、Android的权限机制Android是目前最流行的智能手机软件平台之一,在智能移动终端如火如荼发展的同时,其安全态势也日益严峻。有调查表明,恶意软件的数量在持续的上升,Google在Android安全机制上面也做了很多工作,并且一直在持续的更新,其Android的安全模型由3个部分组成:Linux安全机制、Android本地库及运行环境安全与Android特有的安全机制,如下图:

2016-08-18 13:42:06 643

转载 android6.0系统 Doze模式(DeviceIdle)实现与控制逻辑

http://blog.csdn.net/u011311586/article/details/52092012DeviceIdleController的实现逻辑1.服务启动 21.1SystemServer.java启动阶段 21.2准备阶段 52. 进入Idle模式 62.1进入idle模式的流程 63. 状态变化

2016-08-18 10:33:42 2780

提示
确定要删除当前文章?
取消 删除