Android
文章平均质量分 76
赵继高
这个作者很懒,什么都没留下…
展开
-
Windows使用批处理给手机批量安装apk文件
开发测试过程中,经常会遇见需要给手机安装几十个apk进行测试的问题,但是一个一个安装又非常麻烦,因此就使用Windows的批处理脚本,进行一键安装几十个apk文件。只需要吧待安装的apk文件跟批处理文件放到同一个目录下即可。下面是批处理文件的内容,非常简单。复制粘贴即可直接使用。@ECHO off@SET PATH=%PATH%;%CD%\Adb:LOOPadb wait-for-deviceFOR %%i IN (*.apk) DO ( ECHO installint原创 2020-11-05 14:29:42 · 1158 阅读 · 1 评论 -
dumpsys power 字段含义介绍
在分析app测功耗以及亮灭屏的过程中,经常会执行dumpsys power来获取PowerManagerService的状态。下面就关于dumpsys power的打印的部分字段的含义简要说明下,有不对的地方还请在评论区指出来。POWER MANAGER (dumpsys power)Power Manager State: Settings power_manager_constants: no_cached_wake_locks=true mDirty=0x0 mWak...原创 2020-10-30 16:57:23 · 1694 阅读 · 0 评论 -
AndroidQ 从app到驱动 第六章 从app到驱动的所有的代码链接
前面五章已经从驱动到app做了全面的介绍,这一章就简单坐下总结,将前面五章所涉及到的所有源码做个全家照,然后上传,供大家下载。所有涉及到的代码截图打包的代码截图代码下载链接,目前正在审核中,待审核完毕在贴上。...原创 2020-06-02 19:42:27 · 721 阅读 · 2 评论 -
AndroidQ 从app到驱动 第五章 编写JNI层完成HelloService与Hal层的对接
前面四篇文章,分别介绍了驱动添加,hal层添加,HelloService添加,以及上层测试应用的添加,这里进行我们的最后一步,完成HelloService与Hal层的对接。按照惯例,先上图,介绍修改点。图片只关注红色新添加的部分。截图显示,这里修改了三个文件,新添加了一个文件,修改内容比较少,而且修改的HelloService.java 是之前新添加的文件。下面依次介绍下这几个文件的修改点。1)frameworks/base/services/core/java/com/android/se原创 2020-06-02 19:41:38 · 1213 阅读 · 1 评论 -
AndroidQ 从app到驱动 第四章 编写app验证新添加的helloservice是否正常
这篇文章接上一篇文章,主要介绍如何添加app来验证新添加的helloservice是否正常。按照惯例先上图,介绍添加app所涉及到的修改。截图显示,这个修改非常简单,当然了添加一个app本身就比较简单,这里简要看下具体的修改,1)build/make/target/product/core.mk 的修改2)packages/apps/HelloServiceTest/ 文件夹下面的文件列表2.1)Android.mk的内容LOCAL_PATH:= $(call m..原创 2020-06-02 19:03:04 · 904 阅读 · 2 评论 -
AndroidQ 从app到驱动 第三章 SystemServer服务中添加 HelloService
这篇文章接上一篇文章,主要介绍,如何在SystemServer服务中添加 HelloService,并解决遇见的selinux问题。这篇文章从两个方面来介绍添加过程1:添加HelloService所需要修改以及添加的文件2:解决添加HelloService遇到的selinux权限问题一,添加HelloService所需要修改以及添加的文件首先看截图:截图接上一篇文章中的修改,因此这里只关心红色的部分,绿色部分不关注。截图显示,本次修改,添加了三个新的文件,修改了四个原有的文件,下原创 2020-06-02 09:19:31 · 1780 阅读 · 3 评论 -
Android 源码编译环境搭建 实现一台服务器同时能够编译从4.4到10.0的Android源码
我这边自己使用Ubuntu 14.04 搭建了一个android源码的编译环境,并打包成系统镜像,送给不会搭建编译环境的同学们。链接:https://pan.baidu.com/s/1boDxdbLAndroid 1.6 到9.0 最新版本的Android全套源码,持续更新中:地址1:http://pan.baidu.com/s/1ngsZs地址2:https://...原创 2018-10-09 09:53:02 · 1112 阅读 · 2 评论 -
AndroidQ 从app到驱动 第二章 添加HAL层,先打通JNI层到驱动的访问
这篇文章接上一篇文章,主要介绍如果给Android添加hal层,并解决添加过程中所遇见的selinux问题这篇文章从三个方面来介绍HAL层的添加过程1:添加HAL层所需要修改以及添加的文件2:JNI层访问HAL层的selinux权限问题解决3:HAL层访问驱动的selinux权限问题解决一,添加HAL层所需要修改以及添加的文件首先看截图:截图接上一篇文章中的驱动修改,因此这里只关心红色的部分,绿色部分不关注。从截图中可以看到,添加HAL层比较简单,修改的文件也比较少,其中c.原创 2020-05-29 11:55:02 · 2460 阅读 · 8 评论 -
AndroidQ 从app到驱动 第一章 编写Linux内核驱动程序
一直以来都想从驱动一直到应用,添加一套新的调用流程,来进一步理解Android系统的架构流程。后面会连续写几篇文章,从Android系统的驱动一直到应用层一步一步添加接口,从驱动到应用。由于目前手头仅有Android9.0的全套代码,因此就直接在Android9.0上面适配了,手头仅有Android 10的模拟器代码,因此没有在Android10上面适配。首先这篇文章先简单介绍下,如何编写linux内核驱动。这里参考了其他两个大牛的作品。老罗的在Ubuntu上为Android系统编写Li原创 2020-05-27 17:33:13 · 2187 阅读 · 1 评论 -
Android 在init进程中执行脚本
在曾经的项目中,因为需要添加网络管控的东西,要在开机的时候,执行一些命令来进行初始化。因此在这里就简要介绍下如何在init中执行脚本。一,在init中启动自己的脚本,并不需要修改init进程的源代码,只需要修改 init.tc文件即可。service auto_init_sh /system/AutoInit.sh class main user root ...原创 2020-04-28 11:16:43 · 491 阅读 · 0 评论 -
Android Q Init进程启动zygote的流程分析
在前面的文章中已经分析过了init进行rc文件的流程,以及执行rc文件内容的流程Android Q Init进程解析 rc文件的流程分析Android Q Init进程执行rc文件内容的流程分析这篇文章主要梳理下init进程是如何一步步启动zygote进程的。一,init.rc文件中对于zygote启动的定义 首先我们看下init.rc文件中对于zygote的相...原创 2020-03-27 11:44:39 · 849 阅读 · 2 评论 -
Android Q Init进程执行rc文件内容的流程分析
上一篇文章:Android Q Init进程解析 rc文件的流程分析已经对init进程解析rc文件的流程进行了详细分析。下面我们就分析下init进程具体是如何执行这些rc文件中解析出来的内容的一,执行之前的准备init进程在解析完毕rc文件之后,就会立即开始准备执行rc文件的内容,在执行rc文件的内容之前,需要通过QueueEventTrigger和QueueBuiltinActio...原创 2020-03-27 11:05:11 · 1006 阅读 · 0 评论 -
Android Q Init进程解析 rc文件的流程分析
init进程是Android系统在内核启动完毕之后,启动的第一个进程。这个进程会创建运行Android上传所需要的各种运行环境。这篇博文主要分析 init进程具体是如何进行 init.rc 以及其他的rc文件的。...原创 2020-03-26 16:11:03 · 1752 阅读 · 0 评论 -
Android 8.1 zygote创建新应用进程
Android 8.1 zygote创建新应用进程涉及到的文件以及路径:frameworks/base/core/java/com/android/internal/os/Zygote.javaframeworks/base/core/java/com/android/internal/os/ZygoteConnection.javaframeworks/base/core/java/...原创 2019-01-02 15:28:20 · 957 阅读 · 2 评论 -
MTK 平台开启或者关闭多用户
pub0@SG:~/work/MT6753$ git diff alps/frameworks/base/core/res/res/values/config.xml diff --git a/alps/frameworks/base/core/res/res/values/config.xml b/alps/frameworks/...原创 2018-05-10 09:19:00 · 712 阅读 · 0 评论 -
linux-mysql Access denied for user 'root'@'localhost'
在Linux系统中,使用java登录mysql的时候出现Access denied for user 'root'@'localhost'的异常。但是在命令行中使用mysql -u root -p 命令可以正常登录使用。异常信息如下:Caused by: java.sql.SQLException: Access denied for user 'root'@'localhost' ...原创 2018-03-27 16:34:25 · 1566 阅读 · 0 评论 -
PackageManagerService简介
PackageManagerService简介目录PackageManagerService简介...11:介绍:...22:PMS的启动以及启动中应用的安装流程...22.1 PMS的main函数...72.2:SystemConfig.getInstance();函数分析...142.3:mSettings.readLPw();原创 2017-12-20 11:49:50 · 3204 阅读 · 2 评论 -
Android (6.0) 系统启动流程梳理
Android (6.0) 系统启动流程梳理1:Android系统基本架构 Android其本质就是在标准的Linux系统上增加了Java虚拟机,并在Java虚拟机上搭建了一个JAVA的application framework,所有的应用程序都是基于JAVA的application framework之上。Android主要应用于ARM平台,但不仅限于ARM,也可以在X86等体系结构的机原创 2017-12-20 11:43:27 · 618 阅读 · 0 评论 -
PackageInstall 安装按钮无法点击的问题总结
PackageInstall的应用程序安装界面,安装按钮无法点击,但是取消按钮可以正常点击前几天客户反馈,其遇见一个问题,通过应用商店下载的apk在安装的时候,只能点击取消,无法点击安装按钮。这个问题首先经过查看代码,没有发现任何可疑的地方,因为代码中没有任何地方去禁制这个按钮的点击属性,因此其一直都是可以点击的。最终经过仔细排查发现了在此界面的布局中,安装按钮比取消按钮多了一原创 2017-08-22 14:12:06 · 2834 阅读 · 0 评论