自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (3)
  • 收藏
  • 关注

原创 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 1125 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 1677

原创 AndroidQ 从app到驱动 第六章 从app到驱动的所有的代码链接

前面五章已经从驱动到app做了全面的介绍,这一章就简单坐下总结,将前面五章所涉及到的所有源码做个全家照,然后上传,供大家下载。所有涉及到的代码截图打包的代码截图代码下载链接,目前正在审核中,待审核完毕在贴上。...

2020-06-02 19:42:27 716 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 1207 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 899 2

原创 AndroidQ 从app到驱动 第三章 SystemServer服务中添加 HelloService

这篇文章接上一篇文章,主要介绍,如何在SystemServer服务中添加 HelloService,并解决遇见的selinux问题。这篇文章从两个方面来介绍添加过程1:添加HelloService所需要修改以及添加的文件2:解决添加HelloService遇到的selinux权限问题一,添加HelloService所需要修改以及添加的文件首先看截图:截图接上一篇文章中的修改,因此这里只关心红色的部分,绿色部分不关注。截图显示,本次修改,添加了三个新的文件,修改了四个原有的文件,下

2020-06-02 09:19:31 1770 3

原创 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 2419 8

原创 AndroidQ 从app到驱动 第一章 编写Linux内核驱动程序

一直以来都想从驱动一直到应用,添加一套新的调用流程,来进一步理解Android系统的架构流程。后面会连续写几篇文章,从Android系统的驱动一直到应用层一步一步添加接口,从驱动到应用。由于目前手头仅有Android9.0的全套代码,因此就直接在Android9.0上面适配了,手头仅有Android 10的模拟器代码,因此没有在Android10上面适配。首先这篇文章先简单介绍下,如何编写linux内核驱动。这里参考了其他两个大牛的作品。老罗的在Ubuntu上为Android系统编写Li

2020-05-27 17:33:13 2152 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 488

原创 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 840 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 996

原创 Android Q Init进程解析 rc文件的流程分析

init进程是Android系统在内核启动完毕之后,启动的第一个进程。这个进程会创建运行Android上传所需要的各种运行环境。这篇博文主要分析 init进程具体是如何进行 init.rc 以及其他的rc文件的。...

2020-03-26 16:11:03 1736

原创 AH01177: Failed to lookup provider 'shm' for 'slotmem': is mod_slotmem_shm loaded??

我这边在配置的时候,预见下面的错误:gerrit1@pc:/etc/apache2$ sudo /etc/init.d/apache2 restart * Restarting web server apache2AH00558: apache2: Could not reliably determine the server's fully qualified domain name,...

2019-01-25 11:41:41 1389

原创 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 942 2

原创 基于LittlevGL开源GUI库的多级菜单界面设计。

LittlevGL 是一款开源的GUI库,其内存使用小,功能强大,提供各种控件供用户使用,其官网链接如下:https://littlevgl.com/现在有个项目,需要实现类似于Android 设置一样的多级设置菜单。经过思考,最终设计方案如下:首选有个main.c文件,负责当前模块的界面切换,然后当前目录的每一个界面都使用一个c文件实现,然后在其.h文件中提供四个接口,来控制当前的...

2018-10-09 10:30:48 20614 9

原创 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 1111 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 706

原创 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 1564

原创 Android 升级包升级lk

只需要修改 build/core/Makefile 文件 添加    -u $(PRODUCT_OUT)/lk.bin \  即可diff --git a/alps/build/core/Makefile b/alps/build/core/Makefileold mode 100644new mode 100755index 563400a..c09fe2b--- a/alps/build/co...

2018-03-13 13:45:46 1350 2

原创 PackageManagerService简介

PackageManagerService简介目录PackageManagerService简介...11:介绍:...22:PMS的启动以及启动中应用的安装流程...22.1 PMS的main函数...72.2:SystemConfig.getInstance();函数分析...142.3:mSettings.readLPw();

2017-12-20 11:49:50 3199 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 613

原创 谷歌源码中,增加删除应用机制

最近的项目中,预计一下需求,客户要求在某些版本中,删除所有不需要的应用,只留下设置和相机应用,其他都需要删除。但是因为同一条代码线上面,还有其他的项目,因此不能影响到其他的项目,问题有些棘手。基于此问题,我们想到了两个解决方案。1: 通过mk文件中的LOCAL_OVERRIDES_PACKAGES 属性来覆盖其他应用。      这种修改方法固然可行,但是因为这

2017-08-22 14:19:14 697

原创 PackageInstall 安装按钮无法点击的问题总结

PackageInstall的应用程序安装界面,安装按钮无法点击,但是取消按钮可以正常点击前几天客户反馈,其遇见一个问题,通过应用商店下载的apk在安装的时候,只能点击取消,无法点击安装按钮。这个问题首先经过查看代码,没有发现任何可疑的地方,因为代码中没有任何地方去禁制这个按钮的点击属性,因此其一直都是可以点击的。最终经过仔细排查发现了在此界面的布局中,安装按钮比取消按钮多了一

2017-08-22 14:12:06 2820

原创 Android 5.0 添加系统服务后,启动的时候报安全错误

I/SystemServer(  326): Hello ServiceI/Hello   (  326): Hello ServiceE/HelloService(  326): Hello JNI: initializing......  E/SELinux (   50): avc:  denied  { add } for service=hello scontext=u:r:

2015-07-13 18:47:52 4804

LVGL中文点阵字库.7z

中文点阵字库,包含20902个标准汉字的 12*12,14*14,16*16的点阵字库。以及集成好的LVGL源码。用于大家集成中文字库。

2020-07-09

从app到驱动的所有的代码.7z

AndroidQ 从app到驱动系列文章中 从app到驱动的所涉及到的所有代码,代码分为old和new,old目录中是修改之前的代码,new目录中是修改之后的代码,可以通过比较工具直观的了解都修改了哪些文件,以及具体的修改内容。

2020-06-02

Android系统PackageManagerService简介

Android PackageManagerServer 应用安装过程详解,apk安装过程

2017-12-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除