framework
android framework相关
且听真言
努力工作,玩命生活。
展开
-
Android 8.0 Activity启动流程分析
Activity启动过程中需要注意的一些类:Instrumentation 完成对Application和Activity初始化和生命周期调用的工具类。用来监控系统与应用的交互。 ActivityThread 管理应用进程的主线程的执行。 ApplicationThread 用来实现ActivityManagerService与ActivityThread之间的交互...原创 2020-01-18 15:33:13 · 16558 阅读 · 0 评论 -
信息应用 彩信UI的修改以及信息列表搜索总结
彩信UI的修改彩信UI的修改是整个信息需求中改动最大的部分,这里不描叙彩信UI是如何修改(UI的修改说白就是自定义控制而已,没啥说的),而是着重描叙“在哪里修改”。这里依旧以添加图片为例,ComposeMessageActivity.addImage会调用WorkingMessage.setAttachment来添加附件,添加后会有个回调:mStatusListener.onAttachmen...原创 2019-02-16 10:46:08 · 316 阅读 · 0 评论 -
手机ROM 信息应用发送,接收流程总结
基本功能流程这部分内容主要描叙短彩信发送与接收相关流程以及彩信解析的相关流程,在这里只描叙了一些主要的节点,忽略了不少中间的过程,否则篇幅无法控制了。短信发送流程在短信发送界面点击发送按钮后(ComposeMessageActivity响应OnClick),ComposeMessageActivity首先会对一些相关条件进行check(例如发件人是否有效等),然后会调用sendMess...原创 2019-02-15 15:11:05 · 510 阅读 · 0 评论 -
android PackageManagerService
(PMS),顾名思义,其作用就是对我们的apk安装包进行管理服务,作为Android在java层的服务之一,其与所有其他的服务一样都是由SystemServer所启动的。package com.android.server;public final class SystemServer {}#SystemServer /** * The main entry p...原创 2019-02-15 09:47:50 · 822 阅读 · 0 评论 -
android 深入属性动画
Android3.0之前,Android提供了几种动画类型:View Animation、Drawable Animation、Property Animation。View Animation:比较简单。不过只能支持简单的缩放、平移、旋转、透明度几个基本的动画,且具有一定的局限性。例如:希望View有一个颜色的切换动画,比如希望使用3D旋转动画,希望动画停止时,View的位置就是当前位置...原创 2019-02-14 10:10:10 · 363 阅读 · 0 评论 -
Activity启动过程中Activity的生命周期方法的调用
在Android系统启动时,第一个启动起来的进程就是zygote进程,然后由zygote启动SystemServer,然后就是启动ActivityManagerService、WindowManagerService等系统核心服务,这些服务承担着整个Android系统与客户端交互的重担。zygote除了启动系统服务与进程外,普通的用户进程也由zygote进程fork而来,当一个应用进程启动起来后,...原创 2019-02-13 16:11:20 · 2142 阅读 · 0 评论 -
android 深入理解Android消息机制
Messsage、MessageQueue、Looper、Handler的工作原理就像工厂的生产线,Looper就像发送机,MessageQueue相当于传送带,Handler相当于工人,Message相当于待处理的产品。如下图: 主线程looper创建过程: #ActivityThreadpublic static void main(String[] ...原创 2019-02-13 10:56:40 · 407 阅读 · 0 评论 -
android RecyclerView的设计与实现
RecyclerView的设计与实现public class RecyclerView extends ViewGroup implements ScrollingView, NestedScrollingChild { /**(设置新适配器以按需提供子视图。) * Set a new adapter to provide child views on demand. ...原创 2019-02-12 15:18:50 · 469 阅读 · 0 评论 -
android WindowManagerService
WindowManagerService是一个系统服务,Android framework层主要是由它和另外一个系统服务ActivityManagerService还有View所构成,这3个模块穿插交互在整个framework中,掌握了它们之间的关系以及每一个步骤的逻辑,你对framework就至少了解了百分之五十了。WindowManagerService创建过程: 状态栏添...原创 2019-02-12 10:29:12 · 536 阅读 · 0 评论 -
android NavigationView解析
NavigationView实际上是一个FrameLayout,这个FrameLayout中又包含了一个RecyclerView。如果用户设置了Header布局,那么NavigationView就把这个Header作为这个RecyclerView的第一个Item View,在Header的下面就是菜单列表。通过这种封装使得构建用户菜单变得非常简单,而不需要用户每次都通过RecyclerView手动...原创 2019-02-11 14:17:37 · 1604 阅读 · 0 评论 -
Android事件输入系统简单介绍
InputDispatcher这个类,它是Android事件输入系统的重要组成部分,整个Android事件输入系统可以分为几个部分。其首当其冲的是InputReader,其主要作用是将输入事件从硬件节点中读取后转化为一个Event事件,并将该事件分发给InputDispatcher,InputDispatcher的职责就是接收来自InputReader的Event事件,并像其名字所述的一样,将事件...原创 2019-02-11 10:12:36 · 387 阅读 · 0 评论 -
android广播这订阅、发布的过程
BroadcastReceiver是Android四大组件之一。它作为应用内、进程间的一种重要通信手段,能够将某个消息通过广播的形式 传递给它注册的对应广播接收器的对象,接收对象需要通过Context的registerReceiver函数注册到AMS中,当通过sendBroadcast发送广播时,所有注册了对应的IntentFilter的BroadcastReceiver对象就会接收到这个消息,B...原创 2019-02-03 22:25:45 · 646 阅读 · 0 评论 -
android 深入理解WindowManager
所有需要显示到屏幕上的内容(包括Activity等)都是通过WindowManager来操作的,看来WindowManager是一个非常重要的子系统,这就是我们常说的WMS(WindowManager Service)。我们只关心WindowManager和WindowManagerService(后续简称WMS)、Surface、SurfaceFlinger等建立关联以及交互的一个基本过程。...原创 2019-02-02 10:01:22 · 557 阅读 · 0 评论 -
Android中的Binder跨进程通信机制与AIDL
在Code中,两个对象直接相互访问的前提是这两个对象都存在于相同的内存地址空间中,如果两个对象分别存在于两个不同的进程中,比如上面我们所说的ActivityManager和ActivityManagerService,那么这两个对象是不能直接调用的,就需要使用一种跨进程通信技术,使存在于两个不同进程的对象能够相互访问,传统的跨进程通信方式:Socket、信号量、管道、共享内存、消息队列等。Bi...原创 2019-02-02 09:30:35 · 2780 阅读 · 0 评论 -
android 深入理解LayoutInflater
@SystemService(Context.LAYOUT_INFLATER_SERVICE)public abstract class LayoutInflater {... ...}static { ... ...registerService(Context.LAYOUT_INFLATER_SERVICE, LayoutInflater.class, ...原创 2019-02-01 14:08:46 · 284 阅读 · 0 评论 -
android Intent的查找与匹配
App信息表的构建在Android开发中,Intent及其重要,它是各个组件、进程之间通信的纽带。系统如何通过Intent来查找对应的组件?在第一章中,系统启动之后就会注册各种系统服务,如WindowManagerService、ActivityManagerService等,其中就有一个PackageManagerService(PMS)。PMS启动之后,会扫描系统中已安装的apk目...原创 2019-02-01 10:07:16 · 786 阅读 · 0 评论 -
android MVP应用架构模式
MVP模式的全称是:Model View Presenter MVP模式解除View与Model的耦合,MVP模式解除View与Model的耦合,同时又带来了良好的可扩展性、可测试性,保证了系统的整洁性、灵活性。可能对于简单应用来说,MVP稍显麻烦,各种各样的接口与概念,使得整个应用充斥着零散的接口,但是对于比较复杂的应用来说,MVP是一种良好的架构模式,它能够非常好的...原创 2019-01-27 18:24:08 · 270 阅读 · 0 评论 -
Context与ContextImpl
Context在Android应用开发中占据了绝对重要的地位,不管是Framework提供给我们的四大组件还是应用级别的Application,还是负责View展现层的View相关类,甚至连我们很多时候创建的实体类都会需要一个Context的引用,在Android Framework中,Context贯穿了整个Android MVC框架,它的应用很普遍。尽管如此,Context本质上还是一个普通的...原创 2019-01-22 09:24:09 · 1385 阅读 · 0 评论 -
android WindowManagerService
WindowManagerService是一个系统服务,Android framework层主要是由它和另外一个系统服务ActivityManagerService还有View所构成,这3个模块穿插交互在整个framework中,掌握了它们之间的关系以及每一个步骤的逻辑,你对framework就至少了解了百分之五十了。 和很多其他系统服务一样,WMS也是由SystemServ...原创 2019-01-20 16:59:02 · 3689 阅读 · 0 评论 -
Android资源的加载与匹配
其实在应用程序资源的编译和打包之后就生成了一个资源索引表文件resources.arsc,这个应用程序资源会被打包到APK文件中。Android应用程序在运行过程中,通过一个称为Resource来获取资源,但实际上Resource内部又是通过AssetManager的资源管理器来读取打包在APK文件中的资源文件。那么AssetManager如何与应用关联在一起...原创 2019-01-19 18:37:53 · 1200 阅读 · 0 评论 -
彩信发送流程
发送彩信基本流程:Log分析:study_message: sendMessagestudy_message: WorkingMessage_send:recipientsInUI=18862631722,subId=1study_message: WorkingMessage_sendMmsWorker,mmsUri:content://mms/drafts/11stu...原创 2019-01-13 11:34:21 · 2620 阅读 · 1 评论 -
mtk短信接收流程
短信接收流程1:从接收到短信插入数据库中handleSmsReceived方法中的逻辑: Log分析(短信接收流程):study_message: SmsReceiver_onReceiveWithPrivilege:action:android.provider.Telephony.SMS_DELIVER,privileged:truestudy_message...原创 2019-01-07 18:42:35 · 777 阅读 · 0 评论 -
mtk短信发送流程
短信发送UML图W:\Android8.1_intergration_2\vendor\mediatek\proprietary\packages\apps\Mms\src\com\android\mms\data\WorkingMessage.java/** * Send this message over the network. Will call back with on...原创 2019-01-06 16:08:36 · 746 阅读 · 0 评论