Home
malinkang
Cancel

获取ServiceManager

ServiceManager的addService和getService方法都会首先调用getIServiceManager来获取ServiceManager。 类图 ServiceManager addService //frameworks/base/core/java/android/os/ServiceManager.java public static void add...

ServiceManager启动

ServiceManager在init.rc中启动的。 //system/core/rootdir/init.rc service servicemanager /system/bin/servicemanager class core user system group system critical onrestart restart healt...

startActivity流程分析

Activity的启动过程分为两种,一种是根Activity的启动过程,另一种是普通Activity的启动过程。根Activity指的是应用程序启动的第一个Activity,因此根Activity的启动过程一般情况下也可以理解为应用程序的启动过程。普通Activity指的是除应用程序启动的第一个Activity之外的其他Activity。 Activity的启动过程比较复杂,因此这里分为...

Binder驱动分析

参考 理解Android Binder机制(1/3):驱动篇

Epoxy Models

概览(Overview) Epoxy uses EpoxyModel objects to decide which views to display and how to bind data to them. This is similar to the popular ViewModel pattern. Models also allow you to control othe...

Improve App Performance With Kotlin Coroutines

原文 协程是一种并发设计模式,您可以在Android上使用它来简化异步执行的代码。 Coroutines在版本1.3中添加到Kotlin,并基于其他语言的既定概念。 在Android上,协同程序有助于解决两个主要问题: 管理长时间运行的任务,否则可能会阻止主线程并导致应用冻结。 提供主安全性,或从主线程安全地调用网络或磁盘操作。 本主题描述了如何使用Kotlin协同程...

Dex文件格式分析

在刚学习Java的时候我们都会写一个HelloWorld的示例。 public class HelloWorld{ public static void main(String[] args){ System.out.println("Hello,world!"); } } 然后通过javac命令编译成字节码,然后调用java命令机执行字节码。我们如何像...

Activity的启动流程

App启动的整体流程分为以下7个阶段。 Launcher通知AMS,要启动App,而且指定要启动App的哪个页面(也就是首页)。 AMS通知Launcher, “好了我知道了,没你什么事了”。同时,把要启动的首页记下来。 Launcher当前页面进入Paused状态,然后通知AMS, “我睡了,你可以去找App了”。 AMS检查App是否已经启动了。是,则唤起App即可。...

【译】避免Android中内存泄漏的9种方法

原文,本文介绍了,引发内存泄露的常见情况,并给出了对应的修复方法。 I have been an android developer for quite some time now. And I realised(意识到) that most of that time, I tend to spend on adding new features to an app or worki...

添加和获取服务

ServiceManager addService public static void addService(String name, IBinder service) { try { getIServiceManager().addService(name, service, false);//添加服务 } catch (RemoteException...