android system
文章平均质量分 73
thinkinwm
Do not pray for easy lives. Pray to be stronger men.
展开
-
Android 操作系统架构开篇, 写的很好推荐看看
http://gityuan.com/android/转载 2021-08-25 11:48:20 · 226 阅读 · 0 评论 -
global reference table overflow
https://blog.csdn.net/weixin_40107510/article/details/78138874转载 2021-07-07 20:36:41 · 395 阅读 · 0 评论 -
浅谈Google认证失败项分析
https://www.cnblogs.com/houser0323/p/14002924.html标签:Google认证、GMS认证、XTS失败项分析、Android、cts作者:秋城 https://www.cnblogs.com/houser0323目录浅谈Google认证失败项分析 一、概述 二、确认失败项 三、分析前的一些背景知识 3.1 xts测试的工具、源码及形式 3.2 通过报告定位到测试源码 3.2.1 device端的apk形式测试用例 .转载 2021-05-03 11:41:48 · 2397 阅读 · 0 评论 -
内存耗用:VSS/RSS/PSS/USS 的介绍
https://www.cnblogs.com/jycboy/p/5453533.htmlVSS:Virtual Set Size,虚拟耗用内存。它是一个进程能访问的所有内存空间地址的大小。这个大小包含了一些没有驻留在RAM中的内存,就像mallocs已经被分配,但还没有写入。VSS很少用来测量程序的实际使用内存。RSS:Resident Set Size,实际使用物理内存。RSS是一个进程在RAM中实际持有的内存大小。RSS可能会产生误导,因为它包含了所有该进程使用的共享库所占用的内存,.转载 2021-02-22 21:03:43 · 1120 阅读 · 0 评论 -
纯干货,PSI 原理解析与应用
https://blog.csdn.net/feelabclihu/article/details/105534140一、什么是 PSIPressure Stall Information 提供了一种评估系统资源压力的方法。系统有三个基础资源:CPU、Memory 和 IO,无论这些资源配置如何增加,似乎永远无法满足软件的需求。一旦产生资源竞争,就有可能带来延迟增大,使用户体验到卡顿。如果没有一种相对准确的方法检测系统的资源压力程度,有两种后果。一种是资源使用者过度克制,没有充分使用系统资.转载 2021-01-11 15:11:18 · 3388 阅读 · 0 评论 -
Android RollBack机制实现原理剖析
转载 https://blog.csdn.net/ChaoY1116/article/details/109143954功能介绍:在Android 10.0中,Google新增加了个功能。如果用户对新升级的APP不满意,可以通过“回到过去”,回滚到旧版。当然,如果新安装的apk出现了各种问题无法使用,也可以进行回滚的操作。这样的确可以极大的提升用户的体验,但是因为这块的逻辑较复杂,我们以module_crash_rollback_test为例,来看下具体的实现逻辑。代码路径如下:.转载 2020-12-08 19:45:17 · 2790 阅读 · 0 评论 -
用户空间的LMKD
用户空间的LMKDhttps://www.jianshu.com/p/1ef6e8a1c773原文:https://source.android.com/devices/tech/perf/lmkd本文描述了Android 9中添加的用户空间lowmemorykiller守护程序(lmkd)功能以及如何配置它们。以前,Android使用内核lowmemorykiller驱动程序终止不必要的进程来缓解内存压力。这种机制死板且依赖于硬编码值,而且从内核4.12开始,lowmem...转载 2020-11-20 15:57:56 · 752 阅读 · 1 评论 -
ADB的run-as和exec-out参数
https://www.jianshu.com/p/2b10310cd545run-as 可以用某个用户的权限来执行命令,这可以解决没有访问权限的问题,在不带这个参数时执行:adb push sample.db /data/data/com.sample.foo/databases/sample.dbsample.db就不能被com.sample.foo访问,因为文件的用户和所在的组与com.sample.foo不一致,必须要经过chown修改用户和组后才能访问,而且由于每次app安装后获.转载 2020-09-30 18:19:06 · 1906 阅读 · 0 评论 -
run-as命令的使用 - 用adb shell查看SharedPreferences文件
https://blog.csdn.net/hust_twj/article/details/776997281、在 Android Studio 最下面的 Terminal 中,输入:adb shellrun-as com.example.android //com.example.android:对应项目包名 2、可以使用ls命令查看当前目录下的所有文件,然后找到 shared_prefs,cd进入该文件:cd shared_prefs3、再ls查看 shared_p.转载 2020-09-30 17:29:26 · 1526 阅读 · 0 评论 -
APEX 文件格式学习记录
https://source.android.google.cn/devices/tech/ota/apex?hl=zh-cnhttp://kevinems.com/software-development/762.htmlAPEX 文件格式Android Pony EXpress (APEX) 是 Android 10 中引入的一种容器格式,用于在较低级别系统模块的安装流程中使用。此格式可帮助更新不适用于标准 Android 应用模型的系统组件。一些示例组件包括原生服务和原生库、硬件抽象层 (转载 2020-09-30 17:25:34 · 3653 阅读 · 0 评论 -
InputChannel 用于窗口与InputDispatcher通信
https://blog.csdn.net/qq_34211365/article/details/103243723看了上篇的文章觉得写的挺好, 简单做个笔记:ActivityThread.handleResumeActivity负责将Activity对应的DecorView通过wm.addView(decor, l);放入WMS中 WindowManagerGlobal.addView中负责root = new ViewRootImpl(view.getContext(), displa.翻译 2020-08-23 15:44:38 · 348 阅读 · 0 评论 -
Android系统的开机画面显示过程分析
转自http://blog.csdn.net/luoshengyang/article/details/7691321第一个开机画面是在内核启动的过程中出现的,它是一个静态的画面。第二个开机画面是在init进程启动的过程中出现的,它也是一个静态的画面。第三个开机画面是在系统服务启动的过程中出现的,它是一个动态的画面。无论是哪一个画面,它们都是在一个称为帧缓冲区(frame buff转载 2012-10-12 18:56:48 · 937 阅读 · 0 评论 -
Android之UID and PID
我们经常在一个activity中去start另一个activity,或者与另一个acitivity的结果进行交互(startActivityForResult)。但有没有想过可能会出现的permission问题呢?如果你遇到了permission denial的Exception,那么你需要读读这篇文章啦。 我们在同一个application内部,可以随意的startActivity转载 2012-11-24 22:13:37 · 579 阅读 · 1 评论 -
/system/build.prop
build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变,类似於/etc中的文件。# begin build properties# autogenerated by buildinfo.shro.build.id=GRI40ro.build.display.id=GRJ22ro.build.version.increment转载 2012-11-25 13:34:17 · 1086 阅读 · 0 评论 -
Android中应用程序如何获得系统签名权限
有些库的使用条件比较苛刻,要求同一签名的程序才可以获得访问权。此时即便是在AndroidManifest.xml中添加了相应的permission,依旧会得到没有xx访问权限的问题。比如android.permission.ACCESS_SURFACE_FLINGER 。 第一个方法简单点,不过需要在Android系统源码的环境下用make来编译: 1. 在应用程序的An转载 2012-11-24 22:08:08 · 660 阅读 · 0 评论 -
maxleng的专栏
文章皆来自CSDN网友maxleng的专栏,maxleng是名Android爱好者,长期从事嵌入式系统及手机软件系统研究,自2010年4月起,在CSDN上先后发表28篇《Android核心分析》系列博文,收到网友们的极高评价。《Android核心分析》整理如下:1. 方法论探讨之设计意图2. 方法论探讨之概念空间篇3. 手机之硬件形态4. 手机的软件形态5. Android基本转载 2012-12-02 19:03:44 · 763 阅读 · 0 评论 -
StatusBar (状态栏)的架构(Android 2.3)
分析一下在Android2.3中,StatusBar的架构,其实StatusBar的实现方法还是进行了许多大的修正的,比如原来StatusBar的操作都是在Service进程中,现在许多图标显示更新等的操作都移到了应用进程中。代码目录结构:主要位于两个目录中1,frameworks/base/services/java/com/android/server这个目录在以前版本中也有转载 2012-11-22 13:40:39 · 874 阅读 · 0 评论 -
Android系统进程Zygote启动过程的源代码分析
转载自:http://blog.csdn.net/luoshengyang/article/details/6768304这是目前总结的启动流程,ARM->bootloader->fastboot(uboot)->linux kernel->init (init.rc)->zygote,转载的这篇文章讲解的是最后这两步init(init.rc)->zygote在Android系统中,所转载 2012-10-12 14:01:41 · 598 阅读 · 0 评论 -
/build/envsetup.sh
作为shell scripts学习用function hmm() {cat <<EOFInvoke ". build/envsetup.sh" from your shell to add the following functions to your environment:- croot: Changes directory to the top of the tree.原创 2012-11-25 13:58:37 · 3322 阅读 · 0 评论 -
Android Provision (Setup Wizard)
转自:http://blog.csdn.net/thl789/article/details/7803439Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一个冗余的实现。Android中的Provision其实就是类似刚出厂时或者恢复出厂设置之后,一步一步引导用户完成各种设置的Set转载 2012-11-24 21:56:14 · 520 阅读 · 0 评论 -
android 属性系统
每个属性都有一个名称和值,他们都是字符串格式。属性被大量使用在Android系统中,用来记录系统设置或进程之间的信息交换。属性是在整个系统中全局可见的。每个进程可以get/set属性。 在系统初始化时,Android将分配一个共享内存区来存储的属性。这些是由“init”守护进程完成的,其源代码位于:device/system/init。“init”守护进程将启动一个属性服务。属性服务在“ini转载 2012-12-09 21:44:06 · 664 阅读 · 0 评论 -
Android系统如何实现UI的自适应
做Android应用的人都知道,要一个apk适用多个不同的手机屏幕是很容易的,就是在项目的res文件夹下面有多套相关的资源文件。程序运行的时候,Android系统会根据当前设备的信息去加载不同文件夹下的资源文件。但是Android系统是怎么做到这一点的呢?上网上搜了一下,很少有这方便的介绍,只好自己研究下代码了。下面是我研究代码得到的结果(正确性有待确认),在这里分享一下。 这里以转载 2012-12-21 14:43:34 · 684 阅读 · 0 评论 -
maxleng的专栏 Android Application
转自:http://blog.csdn.net/maxleng/article/details/5621345Android Application Android提供给开发程序员的概念空间中Application只是一个松散的表征概念,没有多少实质上的表征。在Android实际空间中看不到实际意义上的应用程序的概念,即使有一个叫Application的类,这个也就是个应转载 2012-12-16 19:41:35 · 558 阅读 · 0 评论 -
bootloader与签名
我们对于能够及时阻止HTC对其Android设备的Bootloader加锁一事很happy,也对制造商能够聆听少数用户的声音,并意识到解锁 Bootloader可以提升其产品价值的做法感到非常高兴。我们将持续追踪这件事的进展和效果。同时,我们也收到很多关于这Bootloader为啥引 起这么大聒噪之类的疑问,于是就有了这篇试图解答这个问题的文章,此文试图用不Geek的方式来解答,来壶茶,且品且读吧转载 2012-12-16 10:54:38 · 1989 阅读 · 0 评论 -
附图1:Framework基本框架
转载 2013-02-08 15:11:24 · 417 阅读 · 0 评论 -
Android的开机流程
Android的开机流程1. 系统引导bootloader1) 源码:bootable/bootloader/*2) 说明:加电后,CPU将先执行bootloader程序,此处有三种选择开机按Camera+Power启动到fastboot,即命令或SD卡烧写模式,不加载内核及文件系统,此处可以进行工厂模式的烧写开机按Home+Power启动到recovery模式转载 2013-02-11 17:52:20 · 478 阅读 · 0 评论 -
android-cts-manual-r4.pdf
转自: http://blog.csdn.net/a345017062/article/details/6408871本文翻译自Android官方的CTS手册android-cts-manual-r4.pdf Android兼容性测试框架手册 1、为什么需要兼容性测试(以下称CTS)?1.1、让APP提供更好的用户体验。用户可以选择更多的适合自己设备的转载 2013-02-12 12:54:19 · 1051 阅读 · 1 评论 -
StevGuo系列文章翻译之Android系统属性
转自:http://blog.csdn.net/a345017062/article/details/6083026每一个属性都是一个名值对,名和值都是文本。Android系统中,属性被大量使用,用来记录系统设置或者在进程间交换信息。属性在整个系统中是可见的,每一个进程都可以get/set属性。系统初始化时,在init这个daemon中,Android会分配一些内存来存储这些属转载 2013-02-12 14:44:09 · 412 阅读 · 0 评论 -
Android 电源管理基础框架图
APP中不要乱加锁! 不然机器会睡不着。。。耗电Android电源管理方面网上资料比较多,这里就梳理下Android源码的线索,关注wake_lock和early_suspend。使一个应用程序不进入睡眠,须在上层申请一个wakelock锁,并对该锁进行持有。在acquire()和release()间,进程保持running状态。持有锁acquire()经过fram转载 2013-02-13 16:43:09 · 2018 阅读 · 0 评论 -
如何去写 Android init.rc
http://www.cnblogs.com/sdphome/archive/2011/03/20/1989806.html如何去写 Android init.rc (Android init language)Android 初始化语言由四大类声明组成 : 行为类 (Actions), 命令类 (Commands) ,服务类 (Services), 选项类 (Op转载 2013-02-13 17:17:35 · 343 阅读 · 0 评论 -
MIN_MATCH
以前遇到的一个bug,这里有相关说明转自:http://blog.csdn.net/l0605020112/article/details/7755485Android上默认的号码匹配位数是7位,也就是说从右向左算起,如果两个号码有7位是匹配的,那么就认为是相同的号码。如+86 1234567和01234567是相同的号码。external\sqlite\android转载 2013-02-12 12:47:38 · 1166 阅读 · 0 评论 -
为Android扩展一个硬件模块
转自:http://blog.csdn.net/a345017062/article/details/6450211为Android扩展一个硬件模块需要做两件事:1、硬件和内核支持。2、/system/etc/permissions/下面添加xml配置文件。/framework/base/data/etc/下面有一些已经写好的,可以根据需要直接复制过去。 这样,通过Pa转载 2013-02-12 13:05:53 · 408 阅读 · 0 评论 -
fastboot
OverviewFastboot is the method that Android uses to flash the Android build onto the target. If you really want the details, the Fastboot protocol specification is found in the Android source fast转载 2013-02-07 11:18:18 · 1559 阅读 · 0 评论 -
老罗的Android之旅
http://blog.csdn.net/Luoshengyang转载 2013-02-09 14:38:33 · 701 阅读 · 0 评论 -
深入剖析Android系统
http://www.redwolf-blog.com/?p=2070转载 2013-02-17 16:51:59 · 423 阅读 · 0 评论 -
Android Activity生命周期管理
http://blog.csdn.net/thl789/article/details/6628463本文描述Android中Activity的状态,Activity的状态转换,从而总结了Activity各个生命周期的典型时序。与Android现有框架结合,充分考虑Activity的各个生命周期阶段,应用开发者实现相应的回调接口,只有这样,才能开发出符合框架规范的程序。转载 2013-02-17 17:00:37 · 400 阅读 · 0 评论 -
build.prop生成过程
转自:http://blog.csdn.net/thl789/article/details/7014300本文简要分析一下build.prop是如何生成的。Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product//syste转载 2012-12-20 11:05:47 · 673 阅读 · 0 评论 -
SurfaceView和View区别
SurfaceView和View最本质的区别在于,surfaceView是在一个新起的单独线程中可以重新绘制画面而View必须在UI的主线程中更新画面。那么在UI的主线程中更新画面 可能会引发问题,比如你更新画面的时间过长,那么你的主UI线程会被你正在画的函数阻塞。那么将无法响应按键,触屏等消息。当使用surfaceView 由于是在新的线程中更新画面所以不会阻塞你的UI主线程。但这也转载 2012-12-21 15:30:23 · 383 阅读 · 0 评论 -
Android应用程序的默认最大内存
原文: http://www.ziyouku.com/archives/android-applications-to-modify-the-default-maximum-memory-value.html Android应用程序的默认最大内存值为16M,有些应用程序可能会出现内存溢出,譬如:ERROR/AndroidRuntime(264): java.lang.Out转载 2013-02-16 15:17:27 · 543 阅读 · 0 评论 -
Android Provision (Setup Wizard)
http://blog.csdn.net/thl789/article/details/7803439Android中很多框架性的设计都已经存在了,但在市场上的发布版本里却因为没有很好的理解Android的设计意图而进行自己的定制,或者自己又做一个冗余的实现。Android中的Provision其实就是类似刚出厂时或者恢复出厂设置之后,一步一步引导用户完成各种设置的Setup转载 2013-02-17 17:20:08 · 449 阅读 · 0 评论