- 博客(14)
- 资源 (13)
- 收藏
- 关注
原创 Android 8.0 Service源码分析:启动流程及后台限制详解
在使用Service的过程中,相信不少人有过这些疑问:1) Service的启动流程是怎样的?两种启动方式具体有什么区别?2) Android 8.0+对后台Service究竟做了什么限制?对所有App一视同仁吗?3)前台服务为什么不受限制?前台服务可以不弹前台通知吗?4)JobService的机制是什么,为什么不受后台限制?通过阅读本文,了解清楚Service内部机制,你将弄明白这些问题。
2018-10-06 15:27:55
2981
1
原创 APK签名机制之——V2签名机制详解
通过前一篇《Apk签名机制之——JAR签名机制详解》的分析我们知道,JAR签名需要对apk内所有文件进行hash校验,当资源较多时签名验证速度较慢。为了加快验证速度并加强完整性保证,Andorid在7.0引入一种全文件签名方案V2。下面来看V2方案的具体设计原理。
2018-07-15 11:04:01
4678
3
原创 APK签名机制之——JAR签名机制详解
在《APK签名机制原理详解》一文中我们已经了解了APK签名和校验的基本过程,这一篇我们来分析JAR签名机制。JAR签名对对jar包进行签名的一种机制,由于jar包apk本质上都是zip包,所以可以应用到对apk的签名。本文从JAR签名结构、签名过程,再到签名校验的源码分析,全方面来分析Android中JAR签名及校验的机制。
2018-07-01 20:46:39
4911
原创 APK签名机制原理详解
众所周知,Android系统在安装Apk的过程中,会对Apk进行签名校验,校验通过后才能安装成功。那你知道签名校验的机制是什么?具体校验的是什么内容吗?申请第三方SDK(如微信支付)时填入的SAH1值是什么?目前众多的快速批量打包方案又是如何绕过签名检验的?我将通过一系列的文章来解开这些疑惑。
2018-07-01 20:36:02
11039
2
原创 浅谈HTTPS通信机制和Charles抓包原理
网络请求是应用开发的基础,在开发过程中经常需要通过抓包来分析网络问题,了解HTTP基础知识和HTTPS通信机制对提高开发效率来说必不可少。在这篇文章里,我将介绍三部分的内容:1)HTTP基础知识:URL和报文结构;2)浅谈HTTPS通信机制,HTTPS是如何进行安全通信的?3)浅谈HTTPS抓包原理,为什么Charles能够抓取HTTPS报文?1. HTTP基础知识:URL和报文结构1....
2018-06-17 16:44:57
14652
4
原创 关于Binder,作为应用开发者你需要知道的全部
最近看了很多关于Binder的文章,大部分过于抽象或者过于深入源码细节,真正浅显易懂的文章很少。Binder机制很复杂,想要彻底弄懂比较难,除了需要了解操作系统中的各种知识外,还需要看懂Binder驱动层的代码实现。这篇文章主要从宏观的层面去理解Binder中的各种概念和基本通信过程,只关注Java层的实现,底层实现不做介绍。对于应用开发者而言,理解Binder的基本设计原理和通信过程已经够了,想要深入理解Binder需要自行阅读源码。
2018-06-16 09:55:08
3613
2
原创 Android ListView复用机制详解
最近用到RecyclerView,想研究RecyclerView和ListView复用机制的区别,这篇文章以解析源码的方式解析ListView复用机制的原理。ListView复用是通过AbsListView的RecycleBin内部类来实现的,源码注释如下:/** * The RecycleBin facilitates reuse of views across l
2016-09-17 23:02:05
3098
2
原创 Android APK size压缩(瘦身)
随着业务需求的扩展,apk size会不断增加,size太大会影响用户下载和升级的意愿,压缩size是每个大型app必须的工作。首先来看一下apk的构成主要包含资源和代码,那压缩size就要从这2方面入手。1. 开启proguardproguard不仅能够混淆,而且能够优化代码,可以大大减小dex文件的大小。但需要对被反射引用的类需要做好keep
2016-09-14 21:12:59
7338
1
原创 Android N分屏(多窗口)适配
Android N已正式发布,新增了多项特性,详细介绍见官网 https://developer.android.com/about/versions/nougat/android-7.0.html其中最重要新特性的是对多窗口的支持,官方文档 https://developer.android.com/guide/topics/ui/multi-window.html本文只梳理App适配分
2016-08-27 21:46:33
7087
原创 根据拼音首字母匹配汉字(电话本联系人查找)
国标码中汉字的分布是有一定规律的,拼音首字母相同的汉字在同一区域(但多音字有例外),分布如下:int[] gbCode = new int[] { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, -1, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 5138
2012-07-25 16:13:15
2179
原创 bash 环境中的常见特殊符号
bash 环境中的常见特殊符号:符号内容#批注符号:这个最常被使用在 script 当中,视为说明!在后的数据均不运行\跳脱符号:将『特殊字符或通配符』还原成一般字符|管线 (pipe):分隔两个管线命令的界定(后两节介绍);;连续命令下达分隔符:连续性命令的界定 (注意!与管线命令并不相同)
2012-07-24 16:19:04
688
原创 Android 类似于windows打开文件对话框的实现
源码:public class FileExplorerActivity extends ListActivity{ private final static String FILE_TYPE = "filetype"; private final static String FILE_NAME = "filename"; private ListView listView;
2012-07-16 16:37:26
1486
原创 Android Adapter的几种用法
1、继承BaseAdapterpublic class ListViewAdapter extends BaseAdapter{ LayoutInflater inflater; private Context context; private String[] content; private int count; public ListViewAdapter(C
2012-07-16 16:25:53
1199
原创 在Edittext中添加图片并为图片添加点击事件
添加图片: ImageSpan imageSpan = new ImageSpan(this, bitmap); SpannableString ss = new SpannableString("photo"); ss.setSpan(imageSpan, 0, "photo".length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); Ed
2012-07-16 16:09:15
12438
9
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人