AccessibilityService首先你要继承AccessibilityService,你会被要求复写 onKeyEvent、onIntercept、onAccessibilityEvent等方法。我们看这些方法在AccessibilityService中是如何实现的。 public class AccessBackKeyService extends AccessibilityService { private static final String TAG = "jason"; @Override pro…

2021年5月2日 0条评论 7点热度 阅读全文

前一段时间一直在看Android的Settings源码,现在来总结下。我只总结下基本的流程,至于具体的分析我会给出我看过的比较优秀的博文的链接。 一、Settings源码的路径 Settings路径:packages\apps\Settings 由此路径可以看出Settings也是一个app,只不过是一个系统的app,由于是一个app所以可以单编。 二、Settings的主界面 我们先看看清单文件,来找到settings的启动类。(我看的是Android4.4的Settings源码) ... <!-- Set…

2021年5月2日 0条评论 6点热度 阅读全文

一、概述 二、时序图 三、Socket轮询器启动的源码分析 3.1 类 ZygoteInit 3.2 类 ZygoteConnection 3.3 类 RuntimeInit 3.4 类 MethodAndArgsCaller 小结: Zygote响应请求的流程 四、创建子过程(应用进程)的源码分析 4.1 类 LauncherActivity 4.2 类 ActivityManagerService 4.3 类 Process 小结:Process 本文涉及的内容,可也以被称为:《Android应用进程的孵化》 …

2018年3月20日 0条评论 6点热度 阅读全文

1. 介绍 最近打算利用工作之余,学习Android源码。自从开始接触应用开发之后,这一块就一直被忽略了。今天从Ubuntu系统安装开始,到Android8.0的代码编译完成,参照别人的经验,过程还算比较顺利。 2. 步骤 参考官网文档: https://source.android.com/source/initializing 或者博文: http://www.jianshu.com/p/367f0886e62b 基本上依照这篇博文,基本上就可以在Ubuntu环境下快速的完成Android源码的下载和编译。注意…

2017年9月23日 0条评论 8点热度 阅读全文

之前学习Android源码的时候用的sourceinsight,始终感觉类跳转不大精确而且使用久了会有卡顿,就一直想着如何能在Androidstudio或eclipse上查看在所有源码,网上查了很多资料大致有了思路。 一、使用AndroidStudio 第一步:安装VMware。这个很简单,官网下载安装(我用的云盘:http://pan.baidu.com/s/1gfxen7t)就行(如果慢的话可以在用百度网盘搜索:http://www.sobaidupan.com/)。我下载的是12.5.7版本。 第二步:安装U…

2017年7月2日 0条评论 5点热度 阅读全文

项目中涉及低功耗蓝牙手柄的开发,GattCallback onConnectionStateChange接口返回状态status值有多个 private final BluetoothGattCallback mGattCallback = new BluetoothGattCallback() { @Override public void onConnectionStateChange(BluetoothGatt gatt, int status, int newState) { LogUtil.e("stat…

2017年6月16日 0条评论 7点热度 阅读全文

让我们从最开始的enableWifi开始分析 public boolean enableNetwork(int netId, boolean disableOthers) { final boolean pin = disableOthers && mTargetSdkVersion < Build.VERSION_CODES.LOLLIPOP; if (pin) { NetworkRequest request = new NetworkRequest.Builder() .clearCap…

2017年3月14日 0条评论 5点热度 阅读全文

Android的四层架构图大家再熟悉不过了,对于虚拟机心中一直有些疑惑: 1.第三层Android Runtime和LIBRARIES层到底什么关系? 2.Android Runtime、虚拟机和process到底是什么关系? 今天我们从Android 7.0源码进行分析。 int main(int argc, char* const argv[]) { if (prctl(PR_SET_NO_NEW_PRIVS, 1, 0, 0, 0) < 0) { // Older kernels don't under…

2017年3月6日 0条评论 7点热度 阅读全文

先普及一下基本知识: 什么是ANR ANR,是“Application Not Responding”的缩写,即“应用程序无响应”。在Android中,ActivityManagerService(简称AMS)和WindowManagerService(简称WMS)会监测应用程序的响应时间,如果应用程序主线程(即UI线程)在超时时间内对输入事件没有处理完毕,或者对特定操作没有执行完毕,就会出现ANR。对于输入事件没有处理完毕产生的ANR,Android会显示一个对话框,提示用户当前应用程序没有响应,用户可以选择继续…

2017年3月4日 0条评论 7点热度 阅读全文

google推出的carboard、daydream是没有usb接口的,调节全靠手机自身的sensor。而想gear vr这类VR眼镜是有USB接口的,眼镜内部是有sensor用户调节眼镜的,而且有触屏、返回键和音量调节键。是不是很像一个鼠标。 add device 1: /dev/input/event19 name: "XXXX VR, Inc. x HID" could not get driver version for /dev/input/mouse1, Not a typewriter shell状态…

2017年2月26日 0条评论 7点热度 阅读全文