
Android系统
文章平均质量分 83
beyond702
这个作者很懒,什么都没留下…
展开
-
Android shell获取和模拟点击事件
1. 获取点击屏幕的坐标位置通过adb shell getevent命令获得点击屏幕的位置坐标的方法:第一步:计算比例首先通过命令adb shell getevent -p | grep -e "0035" -e "0036"获得event 体系里 宽(0035)和高(0036)以当前我使用的手机为例,命令会输出如下信息:0035 :转载 2017-04-05 16:13:50 · 12253 阅读 · 2 评论 -
Android实用命令汇总——ps
ps进程命令在adb shell终端,输入 ps,可查看手机当前所有的进程状态,其中ps的英文全称是Process Status。1. ps命令参数-t 显示进程里的所有子线程-c 显示进程耗费的CPU时间-p 显示进程优先级、nice值、调度策略-P 显示进程,通常是bg(后台进程)或fg(前台进程)-x 显示进程耗费的用户时间和系统时间,格式:(u:0, s:0),转载 2016-10-19 15:38:41 · 3409 阅读 · 0 评论 -
Android进程总结
在网上看到一篇比较全的Android进程整理文章,这里转载一下,原帖地址:http://gityuan.com/2015/12/19/android-process-category/一、概括系统启动架构图:上图在Android系统-开篇中有讲解,是从Android系统启动的角度来分析,本文是从进程/线程的视角来分析该问题。1.1 父进程转载 2016-10-19 11:03:00 · 924 阅读 · 0 评论 -
Android系统属性SystemProperty分析
原帖地址:http://www.cnblogs.com/bastard/archive/2012/10/11/2720314.html一 System Property 代码中大量存在:SystemProperties.set()/SystemProperties.get();通过这两个接口可以对系统的属性进行读取/设置,顾名思义系统属性,肯定对整个系统全局共转载 2016-10-25 10:29:03 · 849 阅读 · 0 评论 -
图解Dex文件结构及解析要点
Dex文件格式相当简单,看下图:上图是我从数据结构的角度画出来的Dex文件格式,每个数据结构在android源码dalvik/libdex目录下都有定义,关于上图有几点需要注意:1. 图中所有以(encoded)标注的数据结构在文件中对应的数据都是经过Leb128编码的,详细的可以自己去查,编码规则:以字节为单位,按照小端规则排列每字节最高位为标志。如果最高位为原创 2016-09-07 19:41:20 · 4054 阅读 · 0 评论 -
APK瘦身记,如何实现高达53%的压缩效果
原帖:http://bbs.pediy.com/showthread.php?t=209029&highlight=apk+%E7%98%A6%E8%BA%AB+%E8%BA%AB1、我是怎么思考这件事情的APK是Android系统安装包的文件格式,关于这个话题其实是一个老生常谈的题目,不论是公司内部,还是外部网络,前人前辈已经总结出很多方法和规律。不过随着移动端技术近两年的飞速发转载 2016-08-23 19:00:08 · 4694 阅读 · 0 评论 -
Arm的几种工作模式和工作状态
转载地址:http://blog.chinaunix.net/uid-28458801-id-3494646.htmlARM处理器工作模式一共有 7 种 :USR 模式 正常用户模式,程序正常执行模式FIQ模式(Fast Interrupt Request) 处理快速中断,支持高速数据传送或通道处理IRQ模式 处理普通转载 2015-11-18 16:31:06 · 27216 阅读 · 0 评论 -
基于执行视图解析ELF
[《Redirecting functions in shared ELF libraries》](http://www.codeproject.com/Articles/70302/Redirecting-functions-in-shared-ELF-libraries#_Toc257815978)这篇文章所提供的例子,就是基于链接视图对ELF进行解析的,与基于执行视图进行解析相比,后面的逻辑转载 2016-03-17 16:49:40 · 2072 阅读 · 0 评论 -
手把手教你解析AXML
一、简述AXML即Android Binary XML,是Android应用程序APK包中保存xml文件数据的一种方式,可以减小xml文件的大小。本文章与我的另一篇文章手把手教你解析Resources.arsc是相关联的,resources.arsc文件是apk的资源索引文件,而xml文件是apk的资源文件,resources.arsc保存了xml中需要用到的资源的索引,它们之间有非常强的依赖原创 2016-07-05 18:05:29 · 11183 阅读 · 0 评论 -
Android实用命令汇总——am
一、概述作为一名开发者,相信对adb指令一定不会陌生。那么在手机连接adb后,可通过am命令做很多操作:(1) 拨打电话10086adb shell am start -a android.intent.action.CALL -d tel:10086(2) 打开网站www.gityuan.comadb shell am start -a androi转载 2016-10-19 11:36:17 · 1222 阅读 · 0 评论 -
Android实用命令汇总——dumpsys
dumpsys命令功能很强大,能dump系统服务的各种状态,非常有必要熟悉该命令的用法以及含义。一、 dumpsys命令1.1 服务列表不同的Android系统版本支持的命令有所不同,可通过下面命令查看当前手机所支持的dump服务,先进入adb shell,再执行如下命令:dumpsys -l。 这些服务名或许你并看不出其调用的哪个服务,那么这时可以通过下面指令:s转载 2016-10-19 11:13:54 · 838 阅读 · 0 评论 -
Android实用命令汇总——pm
一、Pm命令命令格式:pm command>命令列表:命令功能实现方法list packages列举app包信息PMS.getInstalledPackagesinstall [options] >安装应用PMS.installPackageAsUser转载 2016-10-19 11:35:42 · 1074 阅读 · 1 评论 -
Android Context类结构详解
大家好, 今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中 时刻的在与它打交道,例如:Service、BroadcastReceiver、Activity等都会利用到Context的相关方法 ; 说它陌生,完全是 因为我们真正的不懂Context的原理、类结构关系。一个简单的问题是,一个应用程序App中存在多少个转载 2015-12-18 17:05:37 · 1900 阅读 · 0 评论 -
Mac下AOSP编译和刷机过程中的各种坑
常见的几个坑我这里就不记录了,大家可以Google,这里就记录一个我搞了半天的坑,是有关JDK的。这里我使用的AOSP是Android4.4。最开始我是使用jdk1.8版本编译,出现下面错误:host Java: doclava (out/host/common/obj/JAVA_LIBRARIES/doclava_intermediates/classes)external/docla原创 2016-11-14 15:34:47 · 2321 阅读 · 0 评论 -
Android和Linux动态加载机制及PLT/GOT作用介绍
首先回顾一下Linux平台上,一个模块甲需要调用另外一个模块乙中的函数时的动态链接机制: 1、模块甲在编译期间,将要引用的模块乙的名字与函数名写入自身的符号表。 2、运行期模块甲调用时,调用流程是从调用代码到PLT表到GOT表再跳入模块乙。 而如何保证模块甲的代码能从其PLT/GOT跳到正确的模块乙入口,这就是链接器做的事情。 标准Linux链接器是原创 2016-03-18 17:39:53 · 3454 阅读 · 2 评论 -
基于Android的ELF PLT/GOT符号重定向过程
原帖地址:http://bbs.pediy.com/showthread.php?p=1326515-----------------#引言写这篇技术文的原因,主要有两个:- 其一是发现网上大部分描述PLT/GOT符号重定向过程的文章都是针对x86的,比如[《Redirecting functions in shared ELF libraries》](http转载 2016-03-17 15:06:09 · 1366 阅读 · 0 评论 -
Android内核之内核提取
Android设备启动的时候有两种模式:第一种是正常启动,使用boot分区;第二种是启动恢复过程,使用recovery分区。这两种分区的结构是相同的,后面会介绍到。两者的区别顾名思义,这里不多说了。这两个分区的镜像文件分别对应boot.img和recovery.img,我们可以从很多渠道去获取到,其中包含了系统非常重要的东西。boot.img镜像文件中包含了内核镜像文件(通常命名为zImage原创 2016-11-10 11:54:12 · 11537 阅读 · 1 评论 -
Android内核之运行自定义内核
获取Android内核的途径有两种,一种是从设备中提取内核,可以看我另外一篇文章;另一种方式是从官网去下载内核源码,编译然后刷到手机里。这里我们讲第二种方式。原创 2016-11-15 19:10:42 · 3527 阅读 · 0 评论 -
关于setpropex工具使用的几点问题记录
如果需要修改Android的ro.类型的系统属性,大概有两种方法:一种是需要解锁boot loader,定制自己的boot.img文件;另一种是用setpropex工具。两种方法都需要root权限,第一种方法比较复杂,但好处是可以永久性的修改属性,第二种方法很简单,但是只是暂时的,系统重启就失效了。我这里使用了第二种方法,只要用root权限去运行setpropex设置属性,然后adb ro原创 2016-10-24 18:57:42 · 2135 阅读 · 1 评论 -
Android系统/proc目录最全解析
1. /proc目录首先来介绍一下/proc目录,它是一个虚拟的目录,其下面的文件和目录也都是虚拟的,不占用实际的存储空间,而是存在于系统内存中。proc以文件系统的方式为访问系统内核的操作提供接口,它是动态从系统内核中读出所需信息的。/proc/cmdline:显示内核启动的命令行。/proc/cpuinfo:显示系统cpu的信息。 /proc/filesystems,显示当前注原创 2016-10-19 18:03:13 · 14241 阅读 · 3 评论 -
手把手教你解析Resources.arsc
对于APK里面的Resources.arsc文件大家应该都知道是干什么的(不知道的请看我的另一篇文章Android应用程序资源文件的编译和打包原理),它实际上就是App的资源索引表。下面我会结合实例对它的格式做一下剖析,读完这篇文章应该能够知道Resources.arsc的格式,并可以从二进制的文件中查找到资源的相关信息,或者根据资源的id可以定位到二进制文件中的位置。不过本人对Android资源原创 2016-06-23 17:42:31 · 64175 阅读 · 7 评论 -
Dex文件结构及对应的数据结构
string_ids_off字段:typedef struct DexStringId { u4 stringDataOff; } DexStringId;type_ids_off字段:struct DexTypeId { u4 descriptorIdx; /* index into stringIds list for原创 2016-02-17 17:14:44 · 642 阅读 · 0 评论 -
Android资源管理框架(Asset Manager)简要介绍(转自老罗博客)
筛选自老罗的博客,原文地址Android应用程序主要由两部分内容组成:代码和资源。资源主要就是指那些与UI相关的东西,例如UI布局、字符串和图片等。代码和资源分开可以使得应用程序在运行时根据实际需要来组织UI。这样就可使得应用程序只需要编译一次,就可以支持不同的UI布局。这种特性使得应用程序在运行时可以适应不同的屏幕大小和密度,以及不同的国家和语言等。在本文中,我们就简要介绍Android转载 2015-10-15 19:28:41 · 660 阅读 · 0 评论 -
Android应用方法数65536的限制问题
作为一名Android开发者,相信你对Android方法数不能超过65K的限制应该有所耳闻,随着应用程序功能不断的丰富,总有一天你会遇到一个异常:Conversion to Dalvik format failed:Unable toexecute dex: method ID not in [0, 0xffff]: 65536那么让我们看一下为什么会引起这种错误:原创 2015-10-22 17:10:32 · 724 阅读 · 0 评论 -
Android全面理解Context
前言Context在android中的作用不言而喻,当我们访问当前应用的资源,启动一个新的activity的时候都需要提供Context,而这个Context到底是什么呢,这个问题好像很好回答又好像难以说清楚。从字面意思,Context的意思是“上下文”,或者也可以叫做环境、场景等,尽管如此,还是有点抽象。从类的继承来说,Context作为一个抽象的基类,它的实现子类有三种:Applica转载 2015-10-19 19:44:35 · 517 阅读 · 0 评论 -
Android ART运行时无缝替换Dalvik虚拟机的过程分析
转自老罗的博客:http://blog.youkuaiyun.com/luoshengyang/article/details/18006645Android 4.4发布了一个ART运行时,准备用来替换掉之前一直使用的Dalvik虚拟机,希望籍此解决饱受诟病的性能问题。老罗不打算分析ART的实现原理,只是很有兴趣知道ART是如何无缝替换掉原来的Dalvik虚拟机的。毕竟在原来的系统中,大量转载 2015-11-04 14:34:27 · 797 阅读 · 0 评论 -
Android Context对象
Context(在Android中翻译为场景):一个Activity就是一个Context,一个Service也是一个Context,应用程序中有多少个Activity或者Service,就会有多少个Context对象; Android把"场景"抽象为Context类,用户和操作系统的每一次交互都是一个场景; 如打电话为有界面的场景,后台服务service为没界面的场景; Context类转载 2015-10-18 16:47:03 · 586 阅读 · 0 评论 -
Android应用程序资源文件的编译和打包原理
Android查找资源的流程在Android系统中,每一个应用程序一般都会配置很多资源,用来适配不同密度、大小和方向的屏幕,以及适配不同的国家、地区和语言等等。这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的。这也就是说,给定一个相同的资源ID,在不同的设备配置之下,查找到的可能是不同的资源。这个查找过程对应用程序来说,是完全透明的,这个过程主要是靠Android资源管理原创 2015-10-18 15:49:00 · 15597 阅读 · 0 评论 -
Android应用程序资源查找过程分析
转自老罗的博客:http://blog.youkuaiyun.com/luoshengyang/article/details/8806798 我们知道,在Android系统中,每一个应用程序一般都会配置很多资源,用来适配不同密度、大小和方向的屏幕,以及适配不同的国家、地区和语言等等。这些资源是在应用程序运行时自动根据设备的当前配置信息进行适配的。这也就是说,给定一个相同的资源转载 2015-10-18 15:01:28 · 1029 阅读 · 0 评论 -
Android应用程序相关目录
参考链接:http://www.2cto.com/kf/201405/299974.html一个最一般的apk包(不是系统app,没有共享lib,不是装在sd上或是forward-lock的app)装完后内容会体现在这么几个目录:/data/app // apk包/data/app-lib// native lib/data/data //数据目录,其中原创 2015-10-16 12:41:15 · 595 阅读 · 0 评论 -
Android 中的 Service 全面总结
转一篇关于Android Service组件的文章,写的很不错,适合入门,原文地址1、Service的种类 按运行地点分类:类别区别 优点缺点 应用本地服务(Local)该服务依附在主进程上, 服务依附在主进程上而不是独立的进程,这样在一定程度上节约了资源,另外Local服务转载 2015-12-14 15:58:48 · 486 阅读 · 0 评论 -
编译打包android工程步骤
1.Android程序编译、打包、签名、发布的三种方式: 方式一:命令行手动编译打包 方式二:使用ant自动编译打包 方式三:使用eclipse+ADT编译打包 2.Android编译、打包的步骤: 2.1第一步 生成R.java类文件: Eclipse中会自动生成R.java,ant和命令行使用android SDK提供的aapt.ext程序生成R.java。原创 2015-12-17 15:57:40 · 502 阅读 · 0 评论 -
root技术背后android手机内核提取及逆向分析
转自阿里安全技术博客:http://jaq.alibaba.com/blog.htm?spm=0.0.0.0.VNSW53&id=49安卓ROOT技术背景: Android手机获得Root权限,可以让/system和/data分区获得读写的权限.这两个分区的权限配置,一般在根分区的init.rc文件中,修改这个文件可永久获得root权限. 众所周知,转载 2016-01-26 13:38:19 · 1920 阅读 · 0 评论 -
老罗的“Android应用程序资源的编译和打包过程分析”一文的一点总结
老罗这篇文章的原文地址:http://1025250620.iteye.com/blog/1974214其中大部分内容并没有看明白。。。,不过还是有一些东西需要总结一下。首先摘几段内容:在前面Android资源管理框架(Asset Manager)简要介绍和学习计划一 文中提到,只有那些类型为res/animator、res/anim、res/col原创 2015-10-15 20:20:10 · 843 阅读 · 0 评论 -
笔记:Android源码和NDK目录及头文件
NDK目录:1. 系统调用号定义: android-ndk-r9d/platforms/android-19/arch-arm/usr/include/asm/unistd.h2. 系统中断号定义:android-ndk-r9d/platforms/android-19/arch-arm/usr/include/asm/arch/irqs.h3. ptrace函数定义:原创 2016-03-11 16:14:02 · 6068 阅读 · 0 评论 -
Application, Activity, ContentProvider启动顺序
先交代一下本次问题的背景,由于最近在调研dex加壳,按照Jack_jia的加壳技术方案中的步骤做了demo,然后在android5.0以上系统上运行的时候发现,在解壳的过程中设置ContentProvider的地方有点问题,然后我就把那段代码注释掉了,结果发现程序竟然能够正常运行,感觉很奇怪,由于本人资历尚浅,对Android和加壳的机制都是一知半解,特别是对于ContentProvider更是完原创 2015-11-05 20:25:26 · 12145 阅读 · 0 评论 -
ARM函数调用规则
对于ARM体系来说,不同语言撰写的函数之间相互调用(mix calls)遵循的是 ATPCS(ARM-Thumb Procedure Call Standard),ATPCS主要是定义了函数呼叫时参数的传递规则以及如何从函数返回,关于ATPCS的详细内容可以查看ADS1.2 Online Books ——Developer Guide的2.1节。这篇文档要讲的是 汇编代码中对C函数调用时如何进行参转载 2016-03-11 17:34:43 · 1399 阅读 · 0 评论 -
Android启动过程深入解析
当按下Android设备电源键时究竟发生了什么?Android的启动过程是怎么样的?什么是Linux内核?桌面系统linux内核与Android系统linux内核有什么区别?什么是引导装载程序?什么是Zygote?什么是X86以及ARM linux?什么是init.rc?什么是系统服务?当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Android的启动过程,希望能帮转载 2016-03-21 15:21:30 · 405 阅读 · 0 评论 -
Dalvik加载Class过程分析
转自:http://blog.chinaunix.net/uid-26847859-id-3287963.htmlJava 源代码经过编译后会生成后缀为class的文件,也即字节码文件。然后在Android中使用dx工具将其转换为后缀为jar 的dex类型文件。Dalvik 虚拟机负责解释并执行编译后的字节码。在解释执行字节码之前,当然要读取文件,分析文件的内容,得到字节码,然后才能解释执行之转载 2016-02-17 16:53:58 · 1025 阅读 · 0 评论 -
ARM处理器的寄存器,ARM与Thumb状态,7种运行模式
ARM处理器工作模式一共有 7 种 :USR 模式 正常用户模式,程序正常执行模式FIQ模式(Fast Interrupt Request) 处理快速中断,支持高速数据传送或通道处理IRQ模式 处理普通中断SVC模式(Supervisor) 操作系统保护模式,处理软件中断swi resetABT转载 2016-03-15 19:28:35 · 3608 阅读 · 0 评论