首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
以往android相关
甜酒
创建于2022-10-12
订阅专栏
记录了对旧版android framework\application层相关的理解。
暂无订阅
共22篇文章
创建于2022-10-12
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
反射调用被标记为@hide的API
P之前的Android Java Framework中,有些被标记为@hide的API可以通过反射来访问。但P开始对此方式作了限制。 反射相关的类主要有Class、Constructor、Field、Method、Modifier。
startService过程
getDefault创建了ActivityManagerProxy对象,作为binder通信的客户端。 mRemote调用transact方法经binder驱动,回调ActivityManagerNative的onTransact,处理START_SERVICE_TRANSAC…
APP进程获取AMS BinderProxy 代理对象过程
APP进程的创建需要通过AMS将创建请求发往zygote进程,而AMS所在的进程为system_server进程,这两进程间利用binder机制完成通信。以sartService为例,先调用ServiceManager.getService("activity"),访问bind…
APP安装时抛出error code -102的由来
1.1 processPendingInstall在解析APP时,捕获-102,并将结果缓存至SparseArray mRunningInstalls中,对应key为token。 在调用parseBaseApk(res, parser, flags, outError);会抛出…
android监听屏幕横竖屏变化
1监听其他应用横竖屏,使用watchRotation推荐通过反射调用WindowManagerService的watchRotation方法,回调onRotationChanged;2监听本应用使用O
zygote进程启动过程
system_server是zygote进程创建的第一个进程,zygote进程又是如何启动?Android系统创建的第一个Java进程为zygote,zygote是所有Java进程的父进程,包括system_server、phone等进程。zygote进程启动过程如下: ini…
android平台下利用Netty实现UDP通信
新建UdpClient实例启动客户端线程,接收到的消息通过抽象方法receive回调,void send()用来往服务器发送消息。
利用Surface实现跨进程播放器
播放器在渲染、解码不同质量的视频时会消耗不同程度的、相当可观的内存,为了保障主进程的内存有效分配,可以考虑将视频解码模块独立运行与一个新的进程中,渲染仍保留在主进程中。为了实现这一功能,可以利用android.view.Surface类及Service\TextureView实…
ActivityManagerService启动过程
在分析phone进程开启过程中提到了ActivityManagerService,ActivityManagerService又是如何开启的?system_server进程启动后,进入SystemServer的main方法,调用startBootstrapServices。 1…
Launcher启动过程
ActivityManagerService启动过程中简单分析了AMS的启动过程,在其systemReady方法中调用了startHomeActivityLocked。调用getHomeIntent创建Intent.CATEGORY_HOME类型的intent,交给resolv…
bindService过程
mRemote为IActivityManager类型。 服务进程创建完成后,调用requestServiceBindingsLocked(r, execInFg);绑定。 至此。onBind方法返回Ibinder对象就通过发起方的ServiceConnection的onServ…
Phone Application对象的创建
Process中创建了LocalSocket类型的zygoteSocket,可以连接到名为String ZYGOTE_SOCKET = "zygote"的进程的Socket,这个Socket对应/dev/socket/zygote。 ZygoteInit中的main函数会创建一…
system_server进程启动过程
phone进程是由system_server进程的startOtherServices发起创建的,有必要了解system_server进程启动过程。 zygote进程创建后,会进入ZygoteInit的main方法,main会去调用startSystemServer方法,开始创…
PackageManagerService开机扫描、installd进程安装APK过程分析
PMS负责扫描系统目录下的.apk文件,解析各个.apk的AndroidManifest.xml.这也是APK的安装过程. scanDirLI扫描上述目录下的APK文件。scanPackageLI通过xml解析器解析AndroidManifest.xml文件各个节点标签。 op…
startActivity过程分析
通过AMS向zygote进程发送创建APP进程请求。 至此进入activity的onCreate等生命周期。
进程中Looper对象的创建与Handler消息处理过程
APP进程被zygote创建后,会进入ActivityThread.java的mian方法. 为主线程创建Looper对象,并保存在ThreadLocal对象中。 创建MessageQueue对象,同时mThread为当前进程的主线程。 在for循环中不断从MessageQue…
PhoneWindow的创建与View的绘制过程
startActivity过程分析中提到,执行startActivity调用ActivityStack的startActivityLocked。 APPLICATION创建完成,继续attachApplicationLocked进入主Activity. 回掉onCreate,在…
一种基于Android Camera无预览采集YUV帧的实现方式
有时需要使用Android原生的camera无预览采集YUV数据,用于生成图片与h.264编码。要实现该功能,只需要调用setPreviewTexture即可。
Framework添加自定义API注意事项
注意:前提是添加新API之前,项目能全编通过。 1、如果自定义的包位于frameworks/base/core/java/android下,则直接使用默认的配置,无需修改,忽略2。 2、如果自定义包位于 frameworks/base/core/java/com/****/ca…
基于RecoverySystem类实现全量OTA在线升级
在RecoverySystem类中有verifyPackage与installPackage两个重要方法,通过他们能够实现OTA升级。 注册BroadcastReceiver,用来监听BOOT_COMPLETED,启动后台服务UpdateService,也可通过AlarmMan…
下一页