![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 82
天津 唐秙
这个作者很懒,什么都没留下…
展开
-
Android-ASM字节码插桩与APT原理补充
APT补充1.策略模式2.SPI机制分析3.通过javac源码分析APT执行原理ASM1.逆波兰表达式2.java文件转换class文件基本规则3.ASM框架完成字节码插桩。原创 2022-10-17 16:13:03 · 1092 阅读 · 0 评论 -
Android-Super分区
super分区也叫做dynamic动态分区,动态分区是Android的用户空间分区系统,在Android R版本开始引入,目的是为了解决system和vender等分区size不能动态调整的问题。引入super动态分区之后,将system,vendor等分区一起“打包”在super分区中,物理分区表只有super,不再单独配置system,vendor等分区的配置,其中的子分区可以动态的调整大小。Super分区包含列出了每个子分区的名称和块范围的metadata元数据.属于LVM逻辑卷管理。原创 2022-10-08 10:43:24 · 4853 阅读 · 0 评论 -
Android-从本质层面了解数据结构与算法
1.计算机存储单元与存储结构分析2.算法与数据结构的关系3.基础存储单元与连续存储单元4.ArrayList与LinkedList结构分析5.HashMap底层存储原理详解6.Hash算法详解与Hash冲突7.HashMap头插法与尾插法的优缺点8.HashMap导致100%CPU解密原创 2022-09-16 15:34:30 · 888 阅读 · 1 评论 -
Android-IO加解密核心与dex文件改造过程分析
1.IO应用加解密核心原理2.文件加密的意义3.文件加密与文件混淆4.初探加密算法5.dex文件加密与解密6.APK打包流程与加壳过程7.APK解包流程与脱壳过程原创 2022-09-13 14:24:02 · 1200 阅读 · 0 评论 -
Android-IO底层原理看序列化
底层原理看序列化和反序列化技术点1.序列化概念与目的2.序列化协议与特性3.API提供的序列化方案4.java的序列化步骤与数据结构分析5.Parcelable与Serializable的性能比较6.面试相关问题原创 2022-09-08 11:18:35 · 916 阅读 · 1 评论 -
Android-从Basic IO到NIO内核机制(原理篇)
8.系统在进行IO操作的时候,会有一组优化方案存在,在每次操作的数据为4k1页,但是为了优化可能扩展到8k,在分配到具体物理内存的时候,我给你8k数据,就占用8k数据,但是我看着你还不断的写,我提前先给你8k或者16k,下次,看你空间够用了,不分配,接着用,不够了再分配。3.IO的优化是在解决CPU的瓶颈问题,但是通常在C端很少会出现,所以在学习IO的角度上来说,我们不会把重点放在CPU瓶颈的解决,而是会探寻IO本质原理及序列化的应用与Dex文件的加壳脱壳。原创 2022-09-05 16:59:01 · 536 阅读 · 2 评论 -
Android-线程池
1.救急线程性能提升2.状态设置对于线程池的管理3.原子合并利用位运算进行CAS的优化4.工厂模式的应用。原创 2022-08-11 14:20:43 · 737 阅读 · 0 评论 -
Android-CAS与原子变量(无锁并发和有锁并发)
对于并发处理,从业务角度出发看成两块:1.原子变量操作2.业务代码块的并发并发手段现在接触的是两种:1.加锁并发:synchronize(悲观)2.无锁并发:CAS应用实现(乐观)依靠核的支撑,最大限度保证不进行线程上下文的切换。...原创 2022-08-06 16:33:49 · 678 阅读 · 0 评论 -
Android-JMM内存模型-指令重排-Happens-Before原则-volatile-lock指令-内存屏障
在计算机执行指令的顺序在经过程序编译器编译之后会形成指令序列,一般情况下,这个指令序列是会输出确定的结果,以确保每一次的执行都有一个确定的结果,但是,一般情况下,CPU和编译器为了提高程序执行的效率,会按照一定规则允许进行指令的优化,在某些情况下,这种优化会带来一些执行的逻辑问题,主要的原因是代码逻辑之间是存在一定的先后顺序。然而在并发执行的情况下,可能会发生二义性,会按照不同的执行逻辑,最终得到一个不同的结果。 JVM----编译的指令----JIT进行执行解释的时候会将指令进行优化优化: 1原创 2022-07-06 12:39:06 · 859 阅读 · 2 评论 -
Android-深入理解Binder(一)
文章目录深入理解Binder概述解析MediaServerMediaServer的入口函数ProcessStatedefaultServiceManager注册MediaPlayerService深入理解Binder概述Binder是Android系统提供的一种IPC机制(进程间通信),由于Android是基于Linux内核的,因此除了Binder以外,还存在其他的IPC机制,如管道和Socket等。Android系统基本上可以看作是一个基于Binder通信的C/S架构,Binder就像是网络一样,把原创 2022-04-21 19:27:25 · 3087 阅读 · 3 评论 -
Android-深入理解常见类
文章目录深入理解常见类RefBase、sp和wp初识影子对象RefBase和它的影子sp上场sp析构的影响总结由弱生强总结破解生死魔咒延长生命的魔咒LIFETIME_WEAK的魔力LIFETIME_FOREVER深入理解常见类RefBase、sp和wpRefBase是Android中所有对象的始祖,RefBase结合sp和wp,实现了一套通过引用计数的方式来控制对象生命周期的机制,sp是strong pointer,wp是weak pointer。初识影子对象class A : public Re原创 2022-04-01 19:37:21 · 3247 阅读 · 1 评论 -
Android-深入理解zygote
文章目录zygotezygote分析AppRuntime分析创建虚拟机-startVm注册JNI函数-startRegWelcome to Java World建立IPC通信服务端-registerZygoteSocket预加载类和资源启动system_serverzygotezygote分析zygote最初的名字叫做app_process,这个名字在Android.mk文件中指定的,但是在运行过程中,app_process通过Linux下的pctrl系统调用将自己的名字换成了zygote,代码如下:原创 2022-03-16 16:50:27 · 5180 阅读 · 5 评论 -
Android-深入理解init
文章目录initinit介绍学习路线init分析解析配置文件initinit介绍init是一个进程,它是Linux系统中用户空间的第一个进程,因为Android是基于Linux内核的,所以init也是Android系统中用户空间的第一个进程,它的进程号是1,本节关注几个重要的职责:1.init进程负责创建系统中的几个关键进程,尤其是zygote(后面会讲)2.Android系统有很多属性,于是init就提供了一个property service(属性服务)来管理他们,那么这个属性服务是怎么工作的呢原创 2022-03-11 19:35:33 · 4956 阅读 · 3 评论 -
Android-深入理解JNI
文章目录JNIJNI概念学习JNI的实例:MediaScannerJava层的MediaScannerJNI层MediaScannerJNIJNI概念JNI是Java Native Interface的缩写,java本地调用,JNI是一种技术,可以做到以下两点:1.java程序中函数可以调用Native语言写的函数,Native一般指的是C/C++编写的函数2.Native程序中的函数可以调用Java层的函数,也就是说,C/C++程序中可以调用java的函数问题一:在平台无关的java中,为什么原创 2022-03-04 20:16:58 · 3298 阅读 · 8 评论 -
Android-git常用操作集合
git常用操作集合创建仓库1.生成密钥,在终端执行原创 2022-03-03 14:43:40 · 1580 阅读 · 4 评论 -
正则表达式-正则表达式的使用
文章目录1. 正则表达式1.1 示例1.2 语法1.2.1 普通字符1.2.2 非打印字符1.2.3 特殊字符1.2.4 限定符1.2.5 定位符1.2.6 其他1.2.7 反向引用1.3 修饰符1.4 运算符优先级1. 正则表达式1.1 示例 1.^ 为匹配输入字符串的开始位置 2.[0-9]+ 匹配多个数字,[0-9] 匹配单个数字,+ 匹配一个或者多个 3.abc $ 匹配字母adb并以abc结尾, $ 为匹配输入字符串的结束位置1.2 语法 正则表达式描述了一种字符串匹配的模原创 2022-03-02 12:34:20 · 751 阅读 · 4 评论 -
Android-fastboot刷机
文章目录1. 刷机1.1 fastboot刷机1.2 recovery卡刷1.3 对比1.4 常用命令1. 刷机1.1 fastboot刷机 在安卓手机中fastboot是一种比recovery更底层的刷机模式,俗称引导模式,就是用USB数据线连接手机进行刷机的一种模式,对于一些系统的卡刷来说,线刷更可靠更安全。进入方式,第一种,手机电源键+下音量键,第二种adb reboot bootloader。1.2 recovery卡刷 卡刷是将刷卡包放在sd卡上,然后在recovery中刷机的模式原创 2022-03-02 10:15:24 · 8026 阅读 · 3 评论 -
Android-系统架构-编译源码
文章目录系统架构Android系统架构编译源码系统架构Android系统架构Linux内核层: 包含Linux内核和一些驱动模块(比如USB驱动,Camera驱动,蓝牙驱动)。Libraries层: 这一层提供动态库(也叫做共享库),Android运行时库,Dalvik虚拟机等。Framework层: 这一层大部分使用的是java语言编写,也叫java框架层,为应用程序提供API。Applications层: 与用户进行交互的就是这些应用程序,他们都是用java进行开发的。原创 2022-03-01 17:20:09 · 1028 阅读 · 6 评论