Android Framework 源码解析
文章平均质量分 70
android framework 源码解析包括Android 源码解析,结构分析等。
一航jason
这个作者很懒,什么都没留下…
展开
-
笔记 socket长连接工具类
框架与库支持: 虽然可以直接使用Java或Kotlin的原生Socket类来实现长连接,但为了简化开发和处理复杂性,往往会选择使用成熟的网络库或框架,如Apache MINA、Netty、OkHttp(配合WebSocket或HTTP/2的长轮询)等。连接持久性: 在长连接模式下,客户端与服务器在首次成功建立连接后,不会立即关闭连接,而是保持其有效直至应用程序明确关闭它,或者由于网络故障、超时或其他异常情况导致连接中断。这种持久连接减少了建立新连接所需的握手过程,有助于降低延迟,提高数据传输效率。原创 2024-03-27 15:42:59 · 339 阅读 · 0 评论 -
adb调试系统app
要通过 adb 替换 systemui app 来测试新功能,你需要首先确保你的设备已经获取了 root 权限,因为 systemui app 是系统级别的应用,替换它需要 root 权限。替换 SystemUI 应用:首先,你需要将你的新 SystemUI APK 文件推送到你的设备上。连接你的设备:使用 USB 线将你的设备连接到你的电脑,并确保你的电脑已经安装了 adb 工具。重启你的设备:在 adb shell 中,输入 reboot 命令来重启你的设备。原创 2023-10-21 14:30:30 · 729 阅读 · 0 评论 -
Android 10 Q版本 activity 冷启动流程
由于工作原因需要了解activity启动流程,在网上已经有很多相关文章,不过为了记忆深刻还是自己无脑跑一遍流程,接下来是Android 10 Q Android api 29 的无脑跟流程。这次流程跟踪是activity冷启动,也就是相当于一个A端APP通过intent启动另外一个B端APP的首次启动流程。原创 2023-03-22 17:00:24 · 710 阅读 · 0 评论 -
Activity setContentView 加载布局流程
setContentView这句话android同学们应该非常不陌生,因为他相当于学习java程序的hello world一样地位; 主要用来绑定xml界面;那么问题来了,他是怎么把界面绑定上的?怎么把界面渲染出来的? 带着这些问题我们来看看android中布局加载渲染过程。其实Activity对界面布局的管理是都是通过Window对象来实现的,Window对象,顾名思义就是一个窗口对象,而Ac原创 2017-09-11 14:38:21 · 598 阅读 · 0 评论 -
android 布局绘制流程解析
通过上一篇《布局加载流程》中知道了布局的加载; 大家都知道Activity在Android体系中扮演者一个界面展示的角色,通过上一篇文章的分析,我们知道Activity是通过Window来控制界面的展示的,一个Window对象就是一个窗口对象,而每个Activity中都有一个相应的Window对象,所以说一个Activity对象也就可以说是一个窗口对象,而Window只是控制着界面布局文件的加载过原创 2017-09-12 11:24:21 · 725 阅读 · 0 评论 -
AlertDialog 详解
AlertDialog是经常使用控件,今天我来分析一下源码。android新手经常会用遇到几个问题? * 窗体溢出的bug;这个可以参照前面的《android Context 详解》。 * dialog为什么只接受activity的context;这个问题下面就可以得到答案。我们分析了Activity的布局文件加载、绘制流程,算是对整个Android系统中界面的显示流程有了一个大概的了解,其实A原创 2017-09-12 17:21:08 · 655 阅读 · 0 评论 -
AlertDialog cancel() 销毁窗口流程解析
效果清晰浏览地址:http://pincha.shop/search/blogInfo/2930今天来法分析AlertDialog cancel() 销毁窗口流程。前面文章说了其实activity和dialog都是通过window对象来管理视图的。所以我们可以从AlertDialog销毁过程来了解activity界面销毁过程。Android系统中窗口的展示都是通过Window对象控制,通过...原创 2017-09-13 14:49:44 · 3341 阅读 · 0 评论 -
PopupWindow 详解
清晰版原文地址:http://pincha.shop/search/blogInfo/2931PopupWindow是Android上自定义弹出窗口,可以灵活定义位置动画,使用起来很方便。PopupWindow的构造函数为:public PopupWindow(View contentView, int width, int height, boolean focusable)...原创 2017-09-13 17:41:03 · 1236 阅读 · 0 评论 -
android Toast 吐司 详解
### 什么是土司(Toast)?Toast是Android系统提供的一种非常好的提示方式,在程序中可以使用它将一些短小的信息通知给用户,这些信息会在一段时间后自动消失,并且不会占用任何的屏幕空间;### 下面我们通过源代码分析Toast:前面我们分析了Activity、Dialog、PopupWindow的加载绘制流程,相信大家对整个Android系统中的窗口绘制流程已经有了一个比较...原创 2017-09-14 10:53:09 · 1096 阅读 · 0 评论 -
android 异常处理流程源码分析
android 异常开发者最头疼的地方,了解异常的处理机制对我们开发来说常有帮助。系统在app应用进程运行的时候设置一个异常处理类:··· /* set default handler; this applies to all threads in the VM */ Thread.setDefaultUncaughtExceptionHandler(new U...原创 2017-09-14 14:11:33 · 1762 阅读 · 0 评论 -
android onSaveInstanceState() onRestoreInstanceState() 详解
onCreate方法中有一个参数savedInstanceState是用来保存activity状态,可以在activity实例在后台回收后通过参数完成一下状态恢复。onSaveInstanceState方法则是在可以在销毁实例之前做一些保存参数处理的操作。我们已经分析过Activity的启动流程,从中也分析了Activity的生命周期。而其中有一个生命周期方法:onSaveInstanceStat...原创 2017-09-14 14:57:53 · 374 阅读 · 0 评论 -
android onLowMemory低内存回调方法详解
onLowMemory方法顾名思义就是在app内存低的时候回调,那么怎样才是内存低的标准,回调流程又是如何?我们一起带着问题去看源代码解析。 onLowMemory方法在Activity,Servier,ContentProvider,Application中都有回调,但是BroadcastReceiver没有这个回调。这里简单介绍一下Android系统的内存分配机制。Android系统中一个个的原创 2017-09-14 16:27:06 · 8136 阅读 · 0 评论 -
android 截图功能源码解析
一般没有修改rom的android原生系统截图功能的组合键是音量减+开机键;今天我们从源码角度来分析截图功能是如何在源码中实现的。在android系统中,由于我们的每一个Android界面都是一个Activity,而界面的显示都是通过Window对象实现的,每个Window对象实际上都是PhoneWindow的实例,而每个PhoneWindow对象都对应一个PhoneWindowManager对象,原创 2017-09-15 10:44:04 · 717 阅读 · 0 评论 -
android 事件分发机制详解(二)
Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。ViewGroup的相关事件有三个:onInterceptTouchEvent、dispatchTouchEvent、onTouchEvent原创 2017-09-15 17:26:55 · 364 阅读 · 0 评论 -
《android framework常用api源码分析》之apk打包过程解析
《android framework常用api源码分析》android生态在中国已经发展非常庞大了,一方面是因为手机移动端的覆盖,另一方面是从事android开发的人也月来越多。那么用人单位对android要求也变高了,对android不仅要熟练使用而且要懂得原理。而就程序员自身阅读源码有什么那些?这里我通过自己理解归纳了一下。1、提高程序执行效率,正确理解api可以高效使用,优化内存和执行效率。2原创 2017-12-12 11:48:01 · 1177 阅读 · 0 评论 -
《android framework常用api源码分析》之handler消息机制
android异步消息机制是非常重要的android机制,他属于三大机制之一,android三大机制包括view机制、binder进程通讯机制、handler消息机制。handler机制几乎贯穿与android所有地方,生命周期进程通讯之后回调,app运行之后主线程的消息looper、线程间的通讯等。所以我们来看看handler机制什么之处。原创 2017-12-12 12:05:48 · 803 阅读 · 0 评论 -
《android framework常用api源码分析》之AsyncTask异步任务
AsyncTask是使用非常方便的一个类,经常用于网络请求之后的ui更新。其原理是使用线程池执行futuretask完毕后调用handler机制更新ui。由于线程池是全局单例模式,而且是设定了同时执行线程数量只有一个,所以AsyncTask是按照顺序执行后台线程并且更新ui的。这是AsyncTask重要的特性。本文主要解析AsyncTask的的使用与源码。首先我们来看一下AsyncTask的基本使用:原创 2017-12-12 12:32:58 · 868 阅读 · 0 评论 -
《android framework常用api源码分析》之HandlerThread handler线程
HandlerThread是个什么东西?前面有分析handler机制,通过一个子线程run方法中调用Looper.prepare()创建消息队列和looper对象然后Looper.loop()然后就可以创建属于这个线程handler对象,而且可以使用handler进行线程通讯。HandlerThread就是封装这个机制的api。查看类的定义时有这样一段话:Handy class for starting原创 2017-12-12 13:29:13 · 689 阅读 · 0 评论 -
《android framework常用api源码分析》之IntentService意图服务
什么是IntentService?本身继承了service,所以IntentService就是一个服务,只不过他内部实现了HandlerThread而且管理了service关闭,可以使调用这简单的调用用而不用关心他什么时候关闭;onHandleIntent是里面需要继承类实现的抽象方法,而他是在HandlerThread中执行所以在非ui线程,我们知道四大组件生命周期都是在主线程中执行,因为他们都是用handler机原创 2017-12-12 13:59:59 · 641 阅读 · 0 评论 -
《android framework常用api源码分析》之LruCache内存缓存
缓存这个词在后台开发中间经常接触例如:模板缓存 、文件缓存、内存缓存、数据库缓存等。在android开发中也每天都在与缓存打交道,但是对于一般开发中一些开源框架给完成了缓存工作,所以接触也不是很多,例如最常见的图片缓存,app中有大量网络图片下载与缓存,而大部分图片框架都支持内存缓存和文件缓存(磁盘缓存)。注意:早期一些内存管理方案中有通过强、弱、软、续引用来管理缓存已经不再可靠,容易造成内存溢出。LruCac原创 2017-12-12 14:36:49 · 878 阅读 · 0 评论 -
《android framework常用api源码分析》之Zygote进程
Zygote进程是什么? Zygote进程是android系统启动的第一个进程(不包括kernel层次的init进程),是所有的android进程的父进程,是一个根进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进程,后面所有的进程都是通过这个进程fork出来的,而Zygote进程则是通过linux系统的init进程启动的原创 2017-12-12 15:34:53 · 460 阅读 · 0 评论 -
《android framework常用api源码分析》之SystemServer进程
SystemServer进程?SystemServer进程是系统服务进程,SystemServer进程主要的作用是在这个进程中启动各种系统级服务,比如ActivityManagerService,PackageManagerService,WindowManagerService服务,其实以及各种系统性的服务其实都是在SystemServer进程中启动的,而当我们的应用需要使用各种系统服务的时候其实也是通过与Sys原创 2017-12-12 17:34:32 · 604 阅读 · 0 评论 -
《android framework常用api源码分析》之Launcher 程序
什么是Launcher app?做应用开发的同学平时应该接触不多,android系统桌面就是Launcher app,但是他也是一个普通的app应用程序,是用户交互的第一个程序。很多手机厂商都会修改系统的默认Launcher app和系统默认主题样式,就发展成现在百花齐放的android盛世。一个自己开发app应用启动就是通过点击应用图标启动起来,如果要分析启动流程那就先看看Launcher app。原创 2017-12-12 21:19:40 · 2223 阅读 · 0 评论 -
《android framework常用api源码分析》之app 进程启动流程
android是建立在linux kernel上面的系统,底层不仅省去了驱动适配问题也使用了很多linux系统的功能,例如进程通讯、权限管理等,其中包括今天要说的app进程,他对应也要启动一个对应linux进程。在android guide中有这样的一段关于android应用程序进程的描述:原创 2017-12-13 16:33:57 · 507 阅读 · 0 评论 -
《android framework常用api源码分析》之系统app启动安装流程
如果是从事系统rom工作的同学这篇文章都不用看了,但是如果app应用开发的同学想了解一下系统app是如何安装就可以通过这篇文章了解一下;首先系统app也是普通app只是放置的目录是不一样,是系统预留好的,只要手机启动就可以扫描重新安装,能够在这个目录操作要么是做系统rom时候加入进去,要么就是获取超级用户su的权限,那么就可以把自己app放入系统apk目录做成系统app。原创 2017-12-13 18:05:32 · 800 阅读 · 0 评论 -
《android framework常用api源码分析》之 app应用安装流程
android app安装时候基本原理都是通过adb底层来执行,但是用户操作的安装的时候一般都会有个安装界面并且有权限提示,点击安装的话就可以进行安装流程,那么今天就来分析安装流程中这些熟悉又陌生的系统安装app程序。上一篇文章中给大家分析了一下android系统启动之后调用PackageManagerService服务并解析系统特定目录,解析apk文件并安装的过程,这个安装过期实际上是没有图形界面的,底层调用的是我原创 2017-12-14 11:47:01 · 2219 阅读 · 0 评论