android
文章平均质量分 94
niurenwo
我的公众号:牛晓伟
专注移动端开发多年
展开
-
Android深入理解包管理--记录存储模块
这是包管理系列的第二篇文章,本篇文章主要介绍记录存储模块,通过本文您将了解记录存储模块的作用,apk安装信息是如何记录和存储的。原创 2024-09-23 10:48:27 · 987 阅读 · 0 评论 -
systemserver进程监控者--watchdog
本文同样采用自述的方式来介绍systemserver进程的监控者watchdog,通过本文您将了解watchdog的作用,它是如何工作的原创 2024-08-26 17:34:30 · 983 阅读 · 0 评论 -
Android大脑--systemserver进程
系统native进程的文章就先告一段落了,从这篇文章开始写Java层的文章,本文同样延续自述的方式来介绍**systemserver**进程,通过本文您将了解到**systemserver**进程是啥?它包含那么多的服务,是如何管理它们的?如何启动它们的原创 2024-08-17 11:15:23 · 1073 阅读 · 3 评论 -
Android zygote访谈录
本文以访谈的方式来带大家了解zygote进程,了解zygote进程是啥?它的作用是啥?它是如何一步一步“长大成人”的。原创 2024-07-04 10:21:18 · 1033 阅读 · 0 评论 -
Android 大话binder通信 (下)
用故事的方式把binder通信的整个过程都描述出来,binder通信都经历了哪些节点,在这些节点上的数据有哪些变化,同时还对binder通信的关键细节进行介绍。通过本文您能对binder通信整体和细节都有一个全面的认识,比如*startActivity*方法到底都经历了哪些过程。原创 2024-06-24 10:39:49 · 656 阅读 · 0 评论 -
Android 大话binder通信 (上)
用故事的方式把binder通信的整个过程都描述出来,binder通信都经历了哪些节点,在这些节点上的数据有哪些变化,同时还对binder通信的关键细节进行介绍。通过本文您能对binder通信整体和细节都有一个全面的认识,比如*startActivity*方法到底都经历了哪些过程原创 2024-06-18 09:44:03 · 1048 阅读 · 0 评论 -
Android存储系统成长记
您一定使用过Context的getFileStreamPath方法或者Environment的getExternalStoragePublicDirectory方法,甚至还有别的方法把数据存储到文件中,这些都是存储系统提供的服务,那本文从存储系统“成长”的角度,来揭开存储系统的秘密原创 2024-05-27 16:25:01 · 541 阅读 · 0 评论 -
Apk安装之谜
本文同样还是延续自述、对话这种轻松的方式,带您揭开apk安装的谜底,apk它到底是如何安装的原创 2024-04-28 08:15:00 · 724 阅读 · 0 评论 -
Android启动系列之进程杀手--lmkd
本文以自述的方式来讲解lmkd进程,通过本文您将了解到lmkd进程在安卓系统中存在的意义,以及它是如何杀进程的原创 2023-11-29 23:19:46 · 1975 阅读 · 0 评论 -
Android启动系列之我是init进程
本文以自述的方式来介绍init进程,文中“我”指的是init进程,并且还穿插了对话。以这种方式来讲解技术主要的目的是希望大家能以一种轻松、简单、不枯燥的方式来了解init进程。通过本文希望您可以了解init进程是啥?它的作用有哪些?它在Android中的重要性。原创 2023-10-10 23:18:23 · 550 阅读 · 3 评论 -
Activity系列--Activity界面状态保存恢复
onSaveInstanceState,onRestoreInstanceState这两个回调方法可以做到保存恢复界面状态,但是这种机制只可以用来保存轻量级的数据,涉及到大量的数据的时候不建议使用这中方式,而是使用ViewModel类来进行。原创 2022-11-14 08:26:11 · 332 阅读 · 0 评论 -
Activity系列--Activity生命周期
这节介绍了Activity的生命周期及Activity不同的状态和状态对应的回调方法,以及不同状态的切换。并且介绍了影响Activity状态变更的情况。还介绍了前台进程,失去焦点的后台进程和不可见后台进程,以及它们与被系统终止的可能性。最后介绍了lifecycle组件,强烈建议大家使用这个组件,不要在Activity里面写过多的逻辑(能作为一个模块独立出来就尽量独立出来)。原创 2022-11-14 08:05:39 · 1071 阅读 · 0 评论 -
Activity系列--初识Activity
这一节主要是带大家初识Activity,大家是不是有这样一种感觉:Activity的使用确实很简单。在使用Activity的时候,开发者只需要在继承Activity,在Activity的onCreate方法中实现自己的细节,关于onCreate方法什么时候调用这都不需要开发者关心(只需要关心自己的业务逻辑即可),onCreate方法肯定会被调用的开发者就放心吧,这或许就是框架(framework)的魅力所在,让使用者只需要关心自己的事情即可,剩下的就按框架制定的规则来实现。原创 2022-11-13 22:07:06 · 1176 阅读 · 0 评论 -
Android轻量级Layout Inspector工具
效果图若想使用该工具,请点我为什么要做这个工具如果有更好的轮子用,谁愿意造轮子。在21年年初的时候,我被调到公司的另外一个项目,这个项目有几个特点:历史非常的悠久,使用的技术落后,项目工程复杂,代码量巨大,界面布局层次特别深。这么庞大的项目对于我这个“新人”来说,找个功能的实现,或者找某个view的点击事件是在哪实现的,或者某个view所属的layout是啥等等 都很困难。通过阅读项目的源码来找具体功能点是可行的(比如找某个view的点击事件在哪,大致步骤是先找到Activity进而找到布局l原创 2022-02-09 09:49:06 · 3747 阅读 · 0 评论 -
ReplaceMethod(对调用的方法进行替换的工具)
ReplaceMethod(对调用的方法进行替换的工具)用它能做什么ReplaceMethod: 在编译阶段利用ASM对方法进行替换的工具。 用它可以对调用的方法进行替换,比如下面的一些例子:对view.SetOnclickListener方法进行替换。比如:代码中的所有的view.setOnClickListener方法最终被下面的方法替换public static void setOnClickListener(View view, View.OnClickListener clickLi原创 2022-02-09 09:47:41 · 1601 阅读 · 0 评论 -
Android底层:通熟易懂的分析binder--4.ServiceManager
本篇内容1.ServiceManager的作用2.启动servicemanager进程3.ServiceManager的准备工作4.注册服务5.获取服务6.总结以下代码的分析是基于7.0.0代码分析的1.ServiceManager的作用世间的万事万物都是有因果关系的,事物不会凭白无故的产生,它总是有缘由的。只有我们弄清楚缘由才能更好的理解事物。ServiceManager也是如此,为啥android中要有它呢?它肯定是来解决某类问题的,那我们来看下存在什么样的问题?再来看下Servic原创 2022-02-09 09:34:53 · 437 阅读 · 0 评论 -
Android底层:通熟易懂的分析binder--3. 探究binder全流程通信之回复篇
## 前言Android底层:通熟易懂的分析binder–3. 探究binder全流程通信之请求篇已经把请求流程分析完毕了,接下来分析回复流程。本篇内容方法调用栈收到回复数据并发送回复数据到达driver层server收尾工作client收到回复数据全流程总结1.方法调用栈在分析回复流程之前需要把请求流程后,各个环节现在所处的方法调用栈讲清楚,这样可以作为我们后面分析的基础。分别用clientInvokeStack(client进程方法调用栈),serverInvokeStac原创 2022-02-09 09:33:50 · 891 阅读 · 0 评论 -
Android底层:通熟易懂的分析binder--3. 探究binder全流程通信之请求篇
前言本系列文章我们来探究下binder全流程通信,这里的全流程既指请求binder服务和binder服务返回结果的过程;又指整个通信过程贯穿app,framework,jni,native,driver这五层。在讲解之前大家可以看下 Android底层:通熟易懂的分析binder–2. binder进程通信协议及“记录链路”结构体 这篇文章,它是本系列文章的基础。我会把binder通信流程划分为请求和回复两个阶段,每个阶段都会贯穿从app到driver这五层。下面是这个系列的所有文章:探究binde原创 2022-02-09 09:28:17 · 575 阅读 · 0 评论 -
Android底层:通熟易懂的分析binder--2. binder进程通信协议及“记录链路”结构体
前言binder的准备工作主要介绍了binder进程通信之前需要做的准备工作有哪些,既然binder准备工作做好了,那下一步就是通信了,在讲解通信之前,我希望先把通信的基础知识讲清楚,比如进程与driver层之间的通信协议是啥?binder_node,binder_ref,binder_thread,binder_proc这些东西到底都是啥?在通信过程中起啥作用?Binder,BinderProxy,BpBinder,BBinder又是啥?只有把这些基础知识了解清楚,对于后面的内容理解才能胸有成竹。本篇原创 2022-02-09 09:23:09 · 2058 阅读 · 0 评论 -
Android底层:通熟易懂分析binder:1.binder准备工作
写binder的初衷提起binder,应该会有很多人说,binder这都已经多么老的技术了,并且分析binder的文章是一搜一大堆,你这完全没必要写binder方面的文章啊!我其实对于这种观点不以为然,说下我的理由吧:对自己看过的,学过的binder知识需要有一个总结,这个总结是非常必要的,不信大家可以想想,若没有总结,以前学过的知识是不是已经忘记了很多,没有总结那你学过的知识就是零散的,不成系统。即时binder很老了,依然会有很多人不了解,有可能你会说,了解它有啥用。我想说binder是and原创 2022-02-09 09:21:53 · 361 阅读 · 0 评论 -
Android:我为何要封装DialogFragment?
我为何要封装DialogFragment最近在重构项目代码,项目中创建对话框用的是Dialog,AlertDialog。但是官方推出了DialogFragment来代替Dialog。那我就去认真的了解下DialogFragment。DialogFragmentDialogFragment是在Android3.0的时候被引入的,从其名字可以很直观的看出它是一种基于Fragment的Dialog,可以用原创 2016-02-29 07:43:25 · 532 阅读 · 0 评论 -
Android:我为何要封装DialogFragment?
我为何要封装DialogFragment最近在重构项目代码,项目中创建对话框用的是Dialog,AlertDialog。但是官方推出了DialogFragment来代替Dialog。那我就去认真的了解下DialogFragment。DialogFragmentDialogFragment是在Android3.0的时候被引入的,从其名字可以很直观的看出它是一种基于Fragment的Dialog,可以用原创 2016-01-27 15:26:23 · 1098 阅读 · 0 评论 -
6个值得推荐的Android开源框架简介
6个值得推荐的Android开源框架简介虽然我们在做app的时候并不一定用到框架,但是一些好框架的思想是非常有学习价值的1、volley 项目地址 https://github.com/smanikandan14/Volley-demo (1) JSON,图像等的异步下载; (2) 网络请求的排序(scheduling) (3) 网络请转载 2015-06-01 11:11:54 · 506 阅读 · 0 评论 -
android Error generating final archive: java.io.FileNotFoundException错误
昨天下午从svn服务器上down下工程来在自己eclipse上build 老是报下面的错误Error generating final archive: java.io.FileNotFoundException: D:\work\xxxx\bin\classes\resources.ap_ does not existxxxx Unknown Android Packaging Pr原创 2012-03-31 11:38:09 · 2966 阅读 · 2 评论 -
android service与activity双向通信
前些日子在做音乐播放器的例子,在做的过程中要涉及到service 与activity之间的交互,于是乎就在网上搜罗例子,例子确实很多,但是涉及到他俩之间互相交互的例子就少了。于是乎决定把自己的例子写下来,与大家分享,有不足之处还请各位多多指教(这是我在csdn上的第一篇博文,谢谢各位支持) service与activity之间通信肯定需要用到AIDL技术,关于它就不具体的说了,网上一大原创 2012-03-31 11:00:28 · 3023 阅读 · 0 评论 -
hg clone abort:error
链接处 http://zhujianjia.iteye.com/blog/1246422转载 2012-03-31 11:52:14 · 1245 阅读 · 0 评论