Android
文章平均质量分 73
程序员不太冷
这个作者很懒,什么都没留下…
展开
-
解决支付宝包体积优化的遗留问题:运行时获取dexpc
本文解决了支付宝包体积优化方案遗留的一个未解决问题。1 问题背景1.1 安卓包体积优化精简安卓应用的包体积是提升其质量的重要手段之一。安卓应用的安装包(apk文件)中dex保存的是应用的代码,占有可观的体积。如果能够将这一部分的体积减小,那么无疑会有效地减小安装包的体积。dex中的debugitem主要保存着两类信息:1.方法的参数和局部变量信息。2.行号信息。删除debugitem后不会影...原创 2019-12-28 17:22:47 · 944 阅读 · 0 评论 -
实用的Android.mk用例
通过一个实例说明Android.mk的用法,四个module: add,sub,multi和div,分别对应四种编译方式:shared,static,prebuilt shared,prebuilt static.项目结构如图: 各个Android.mk内容如下:src/main/cpp/Android.mkinclude $(call all-subdir-makefiles)...原创 2018-07-14 14:40:03 · 763 阅读 · 0 评论 -
突破Android P(Preview 1)对调用隐藏API限制的方法
突破Android P(Preview 1)对调用隐藏API限制的方法一.概要本文基于对Android P(Preview 1)的源码分析,实现了三种绕过对调用隐藏API限制的方法,有效性均已得到验证,能够成功调用系统隐藏API。二.限制原理首先抛开Android P的具体实现过程,安卓系统要实现限制用户代码调用系统隐藏API,至少要做以下两个区分:必须区分一个Met...原创 2018-04-12 21:49:55 · 3727 阅读 · 1 评论 -
浅显理解Android的Matrix
Matrix就是一个从(x0,y0)到(x1,y1)的Map,也就是从原始点到结果点的映射.一个全新的(下称单位矩阵)Matrix映射结果为(x1=x0,y1=y0).单位矩阵Matrix调用post(pre)Translate(a,b)映射结果为(x1=x0+a,y1=y0+b).单位矩阵Matrix调用post(pre)Scale(sx,sy)映射结果为(x1=x0*sx,y1=y0*s原创 2018-01-21 13:14:09 · 329 阅读 · 0 评论 -
applicationId VS package
预备知识只有在使用Android Studio时才会存在applicationId,这个值一般写在build.gradle文件中.用Android Studio构建apk时,AndroidManifest.xml源文件和生成的apk中的AndroidManifest.xml会稍有变化.构建apk之前和构建apk之后applicationId和package的作用是会发生变化的,下面分别讨论之:原创 2017-06-21 23:01:59 · 401 阅读 · 0 评论 -
AndroidManifest.xml的意义
AndroidManifest.xml是一个什么文件?它是每个apk(zip)文件解压后根目录下的一个文件,每个apk都必须包含一个AndroidManifest.xml文件,且名字必须与此完全一致.为什么每个android应用都必须有一个AndroidManifest.xml文件?原创 2017-06-21 22:47:07 · 2466 阅读 · 0 评论 -
android从native启动java程序
从native启动/data/local/tmp/myapp.apk文件中com.myapp类的Main方法,原创 2017-03-27 21:32:35 · 680 阅读 · 0 评论 -
android的消息机制总结2
android怎样在非主线程中实现消息循环 有两种方法: 自己用代码实现:新启动一个Thread,在run方法中调用如下代码即可 ...Looper.prepare();...Looper mLooper=Looper.myLooper(); ...Looper.loop();原创 2017-03-17 23:05:13 · 614 阅读 · 0 评论 -
android的消息机制总结1
android为什么要使用消息队列模式(Looper,Handler,Message)? 这是一种异步机制,消息发送方不需要等到消息处理完成就可以直接返回. 当消息队列为空时能够阻塞等待,直到有消息时再处理.因为实际使用App时,大多数情况下需要等待用户输入(例如触屏事件).原创 2017-03-17 21:33:25 · 544 阅读 · 0 评论 -
nuwa总结
nuwa是什么?nuwa是一个开源的android应用热修复方案,通过替换存在bug的类,能够在不重新安装app的情况下,修复app存在的问题.原创 2017-02-17 15:13:29 · 2741 阅读 · 0 评论 -
Proguard的Keep使用方法
java代码存在互相引用的关系,构成一个网状关系.(个人理解)引用又分为两种:普通引用和字符串引用(例如反射,native方法等).而java代码的执行入口点必然是采用的字符串引用(例如main等方法),因为外部想要执行此代码必须知道一个明确的入口点名字..Proguard流程原创 2017-01-06 22:55:50 · 11659 阅读 · 0 评论 -
Dalvik虚拟机java方法执行流程和Method结构体分析
Method结构体是啥? 在Dalvik虚拟机内部,每个Java方法都有一个对应的Method结构体,虚拟机根据此结构体获取方法的所有信息.Method结构体是怎样定义的?原创 2016-12-14 21:57:35 · 2013 阅读 · 0 评论 -
几种Dalvik Hook方案研究
Dalvik Hook的基本原理如上一篇文章所述,每个java方法在虚拟机内部都对应一个Method结构体(可以将JNI的jmethodID强转为指向此Method结构体首地址的指针得到),Dalvik Hook通常通过修改Method结构体内容实现.常见的两种hook思路:原创 2016-12-17 13:56:05 · 1843 阅读 · 0 评论