- 博客(8)
- 收藏
- 关注
原创 探究android-aidl---bindService的绑定及其内部原理
bindService的用法 private IMyAidlInterface iMyAidlInterface; private void bindService() { Intent intent = new Intent(); intent.setComponent(new ComponentName("com.example.aidlserver", "MyService")); bindService(intent, service
2021-03-12 12:33:27
9252
原创 探究StartService的启动与其原理
前言启动服务-基本使用通过将 Intent 传递给 startService() 或 startForegroundService(),从 Activity 或其他应用组件启动服务。Android 系统会调用服务的 onStartCommand() 方法,并向其传递 Intent,从而指定要启动的服务。Intent intent = new Intent(this, MyService.class);startService(intent);MyService.javapublic class
2021-03-05 16:49:40
8728
2
原创 binder应用层的学习——ADIL的使用与原理
使用aidl首先看下应用使用aidl时的代码:①在服务端和客户端创建aidl文件服务端// IMyAidlInterface.aidlpackage aidl.com.example.test;interface IMyAidlInterface { void hi(String s); String bye(int s); void hello(int s);}客户端// IMyAidlInterface.aidlpackage aidl.com.exampl
2021-02-24 17:43:43
8549
原创 [framework]android - 四大组件 - 动态广播的注册和收发原理
在安卓中,广播的接收有动态注册和静态注册两种方式,这篇博客沿着动态广播的注册、发送和接收三条路线开展探究。动态广播的注册首先,先整理一波动态注册的鸟瞰图从图中可以看到1)代码中调用的egisterReceiver(BroadcastReceiver, IntentFilter),在ContextImpl.java中实现(关于Context和Activity的关联,可以翻看我的前一篇博文),实际真正是ActivityManagerService去注册广播。2)再通过跨进程通讯(这里采用的是bind
2021-01-27 17:14:14
8621
1
原创 探索APP进程的启动流程(二)完结篇
首先回顾下冷启动的流程图:共有四个步骤:1.launcher进程通过binder请求ams启动Activity,AMS进程查询内存中是否存在该进程。2.内存中无相应进程,ams通过socket发送创建进程命令和相关资料到zygote进程。3.zygote进程收到socket信息后,fork子进程,创建出ActivityThread的进程(目的进程)4.ActivityThread通过binder把新建的进程信息与AMS进行相关联。在上一篇博客中,介绍了从用户点开app到发送指令给zygote进
2021-01-06 17:14:51
8421
原创 靠谱的app加固分享(已完成)
先来看看大概流程加固俯瞰1、编写加密方法,作为工具方法用于后续的加密和解密准备。2、编写代理Application(ProxyApplication),作为加固后的apk的伪入口。(ProxyApplication作为伪入口时,需要将加密apk进行解密并重新加载于classLoader中)3、将1、2步的文件打包成aar包。4、解压aar包(于aarTemp文件夹),并将解压后的jar文件,编译成dex文件(Entrance.dex)(安卓虚拟机可识别的机器码文件)。5、对需要加密的apk的An
2020-09-14 17:22:12
11615
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人