Android OS
文章平均质量分 55
深入Android源码,深度剖析安卓原生!
Just_Paranoid
Android Developer | AOSP Researcher | ML Researcher
展开
-
Android 蓝牙无法发送或接收某些类型文件
Android 蓝牙应用提供了一种便捷的方式,使得用户可以与其他蓝牙设备进行通信、控制和数据传输。它在无线通信、外围设备控制、文件传输和蓝牙低功耗等方面具有重要作用,丰富了移动设备的功能和应用场景。原创 2024-04-24 14:10:55 · 1748 阅读 · 1 评论 -
AOSP 中的编译工具链工具
在AOSP(Android Open Source Project)中,编译工具链是一组用于构建Android操作系统的工具集合。这些工具协同工作,将源代码转换为可执行的二进制文件,用于生成Android系统的各个组件和应用程序。原创 2023-07-31 20:09:54 · 1187 阅读 · 0 评论 -
Wi-Fi 联盟的协议和标准
Wi-Fi利用无线电波在设备之间传输数据。无线路由器或接入点通过将数据转换为无线信号并广播到周围的区域来创建无线网络。Wi-Fi设备,如手机、电脑和智能家居设备,可以通过接收无线信号并将其转换为可理解的数据来连接到网络。原创 2023-06-30 17:22:41 · 1792 阅读 · 0 评论 -
Android 二维图形处理引擎 Skia
Android Skia 是一个二维图形处理引擎,是 Android 操作系统中用于处理图形渲染、图像处理和矢量图形显示的核心组件之一。它利用 CPU 和 GPU 加速来操作位图和向量图像,并提供了各种渲染效果和动画效果。原创 2023-04-24 09:00:00 · 3326 阅读 · 0 评论 -
Android UI渲染组件 HWUI
Android HWUI(Hardware UI)是Android系统中的一个组件,主要用于绘制UI界面。它提供了高效的、硬件加速的渲染,可以利用GPU来执行大部分UI元素的绘制操作,从而减轻CPU负担,实现更流畅的用户体验。HWUI还支持图层(Layer)等特性,可以让开发者更加灵活地管理和优化UI的绘制效率。原创 2023-04-16 16:44:54 · 2152 阅读 · 0 评论 -
Android系统重要组件AMS
Android AMS指的是Android系统中的Activity Manager Service,它是Android系统中一个重要的管理组件,负责管理应用程序的进程、Activity生命周期、任务管理、权限管理等。原创 2023-04-11 20:00:04 · 2551 阅读 · 0 评论 -
Android系统重要组件WMS
WMS是Android系统的窗口管理子系统,负责管理Android应用程序的所有窗口。WMS主要的职责之一是将应用程序的窗口显示在屏幕上,以及处理用户的输入事件。原创 2023-04-08 23:58:12 · 1026 阅读 · 0 评论 -
Android系统重要组件PMS
Android PMS(Package Manager Service)是Android系统中的一个重要组件,它管理着Android系统中所有应用程序的安装、卸载、更新等工作。原创 2023-04-07 17:57:09 · 2157 阅读 · 0 评论 -
Android 设置搜索功能
Android 设置App的搜索功能流程原创 2023-01-16 17:23:30 · 2185 阅读 · 0 评论 -
Android Makefile常用模块变量
Android Makefile常用模块变量原创 2022-12-29 19:40:37 · 1166 阅读 · 0 评论 -
Android 设置框架
Android 设置框架原创 2022-12-28 17:06:58 · 1795 阅读 · 0 评论 -
Android 恢复出厂设置时间重置
时间由rtc硬件模块来进行维护的,时间更新后会将时间信息写入此硬件模块,在系统启动时,RTC硬件驱动会读取此值进行设置。关于android的时间网上资料了解到,android Linux都有两个时间,一个是系统时间,一个是硬件时间(RTC时间)。RTC是实时时钟的英文 缩写,基本上在硬件上都有纽扣电池,不会断电,会一直计时;但系统时钟不一样,系统运行的时候能一直计时,但系统关机或者断电的时候就gg了。所以每次系统开机的时候,会去读取rtc中的硬件时间,写入到系统时间,然后系统时间就自己搞起来了,不再关r原创 2022-11-26 15:27:24 · 2345 阅读 · 0 评论 -
Android AIDEGen tools基本使用
AIDEGen旨在自动化项目设置过程,以便开发人员在流行的 IDE 环境中处理 Java 或 C/C++ 项目。原创 2022-11-20 13:33:57 · 3155 阅读 · 3 评论 -
Android mk输出日志方法
所谓android编译系统,就是android顶层目录下的build目录里面的一系列编译控制文件,其实就是一系列makefile文件和 *.mk 文件,这些文件才是编译android系统完整的makefile文件.每个模块里的android.mk只不过是被包含进android编译系统的一小部分而已。原创 2022-10-28 17:40:53 · 4534 阅读 · 0 评论 -
Android Settings模块
Android系统Settings模块集成系统的很多设置项目原创 2022-07-16 20:41:16 · 1519 阅读 · 1 评论 -
AOSP内置APP特许权限白名单
AOSP内置APP特许权限白名单原创 2022-07-29 14:36:45 · 2750 阅读 · 0 评论 -
Android.mk 转换为 Android.bp
Android.mk文件是GNU Makefile的一小部分,它用来对Android程序进行编译。因为所有的编译文件都在同一个 GNU MAKE 执行环境中进行执行,而Android.mk中所有的变量都是全局的。Soong是 Android 的构建系统,旨在替代旧的 make-based build system ,Soong读Android.bp文件,它们以类似 Bazel 的语法定义模块。Soong 本身是在 Blueprint 之上用 Go 编写的框架,反过来使用 Ninja作为后端。 Ninja原创 2021-10-27 15:24:40 · 3984 阅读 · 0 评论 -
Android系统userdata自适应方案
Android 11diff --git a/system/core/fs_mgr/fs_mgr.cpp b/system/core/fs_mgr/fs_mgr.cppindex d70d5a7..6b5d438 100755--- a/system/core/fs_mgr/fs_mgr.cpp+++ b/system/core/fs_mgr/fs_mgr.cpp@@ -679,6 +679,63 @@ } return sb == cpu_to_le32(F2FS_SUP.原创 2021-08-30 17:42:57 · 3731 阅读 · 1 评论 -
Android ANR问题分析
一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的三种类型1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:ServiceTimeout(20 seconds) --小概率类型Service在特定的时间内无法处理完成三:如何调查并解决ANR1:首先分析logc原创 2021-08-27 16:15:30 · 2760 阅读 · 0 评论 -
Android telephony相关
Android telephony相关subid和slotid(phoneid)slotid(phoneid)是指卡槽:双卡机器的卡槽1值为0,卡槽2值为1,依次类推。subid:SubscriptionId(Subscription Identifier)。subid是数据库telephony.db的表siminfo的主键递增项,其中telephony.db在"/data /user_de/0/com.android.providers.telephony/databases"下。subid的值原创 2021-08-27 15:56:31 · 3707 阅读 · 0 评论 -
Android Makefile相关参数
Makefile中的相关参数= 是最基本的赋值:= 是覆盖之前的值?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值1、wildcard : 扩展通配符2、notdir : 去除路径3、patsubst :替换通配符#sample Makefile#首先使用“wildcard”函数获取工作目录下的.c文件列表;之后将列表中所有文件名的后缀.c替换为.oobjects := $(patsubst %.c,%.o,$(wildcard *.c))strip :去空原创 2021-08-27 15:54:31 · 2590 阅读 · 0 评论 -
Android文件系统
Android文件系统device/qcom/trinket/AndroidBoard.mkifeq ($(strip $(BOARD_DYNAMIC_PARTITION_ENABLE)),true)include $(CLEAR_VARS)LOCAL_MODULE := fstab.qcomLOCAL_MODULE_TAGS := optionalLOCAL_MODULE_CLASS := ETCifeq ($(ENABLE_AB), true)LOCAL_SRC_FILE原创 2021-08-27 15:53:46 · 4509 阅读 · 0 评论 -
Android系统C/C++编译头文件
build/core/config.mk//头文件路径:SRC_HEADERS //宿主头文件路径:SRC_HOST_HEADERS# TODO: Enforce some kind of layering; only add include paths# when a module links against a particular library.# TODO: See if we can remove most of these from the global list.S原创 2021-07-29 17:38:38 · 3408 阅读 · 0 评论 -
Shell 脚本基础学习
Shell参数学习unset为shell内建指令,可删除变量或函数shell 中 [-eq] [-ne] [-gt] [-lt] [ge] [le]-eq //等于-ne //不等于-gt //大于greater-lt //小于less-ge //大于等于-le //小于等于Shell 中 [$0] [$n] [$#] [$*] [$@] [$?] [$$]$0 //当前脚本文件名$n //传递给脚本或函数的参数,n为数字,表示第几个参数,例:$1为第一个参数,$2为第二个参数原创 2021-07-29 15:50:58 · 2769 阅读 · 0 评论 -
Android系统按键上报流程及其转化
getevent按键上报键扫描码Scancode是由Linux的Input驱动框架定义的整数类型。键扫描码Scancode经过一次转化后,形成按键的标签KeycodeLabel,是一个字符串的表示形式。按键的标签KeycodeLabel经过转换后,再次形成整数型的按键码keycode。在Android应用程序层,主要使用按键码keycode来区分。1.当底层Kernel驱动完成后,可以使用adb shell getevent查看上报事件C:\Users\Admin>adb shell getev原创 2021-07-15 11:34:14 · 4164 阅读 · 0 评论 -
Android系统ROM+RAM基础裁剪
build/core/main.mk原创 2021-07-15 11:30:38 · 4394 阅读 · 0 评论 -
Android调试技巧之monkey
C:\Users\Admin>adb shell monkey -help bash arg: -helpargs: [-help] arg: "-help"usage: monkey [-p ALLOWED_PACKAGE [-p ALLOWED_PACKAGE] ...] [-c MAIN_CATEGORY [-c MAIN_CATEGORY] ...] [--ignore-crashes] [--ignore-timeouts]原创 2021-07-15 11:25:17 · 2782 阅读 · 0 评论 -
Android调试技巧之远程连接adb
Android调试技巧之远程连接adb,简单三步实现通过wifi连接adb原创 2021-07-15 10:35:37 · 11634 阅读 · 0 评论 -
Android系统架构之Framework
Android系统内容十分庞大,而架构相对简单,由下至上分别是Linux内核、HAL、系统Native库和Android运行时环境、Java框架层以及应用层这5层架构,其中每一层都包含大量的子模块或子系统。Franework——Java API FrameworkSystem Server是由Zygote进程fork的第一个进程,负责启动和管理整个Java Framework,包含ActivityManager,WindowManager,PackageManager,PowerManager等服务原创 2021-06-26 17:55:45 · 4790 阅读 · 0 评论 -
Android系统高通平台WIFI配置
device/qcom/msm8952_64/WCNSS_qcom_cfg.ini在WIFI配置文件中有BandCapability参数;BandCapability共有三个参数0:both1:2.4only2:5only参数改成0或2都应该能支持5GBandCapability=0 表示即支持2.4G也支持5GBandCapability=1 表示只支持2.4GBandCapability=2 表示支持5G...原创 2021-06-25 17:44:37 · 3902 阅读 · 0 评论 -
Android编译系统Makefile
Android编译系统来自 http://liuwangshu.cn/framework/aosp/3-compiling-aosp.htmlAndroid.mk、Ninja、Soong、Blueprint、kati、Android.bp的概念之间的联系为:MakefileAndroid平台的编译系统,其实就是用Makefile写出来的一个独立项目。它定义了编译的规则,实现了“自动化编译”,不仅把分散在数百个Git库中的代码整合起来、统一编译, 而且还把产物分门别类地输出到一个目录,打包成手机RO原创 2021-06-25 16:41:45 · 3186 阅读 · 1 评论 -
Android系统adb模拟按键操作方法
使用adb命令模拟按键操作,主要是找到对应的按键的keycode,主要命令`adb shell input keyevent `原创 2021-06-21 19:34:09 · 13022 阅读 · 0 评论 -
Android系统添加SystemFeature方法
Android 系统hasSystemFeature 添加Feature方法https://blog.csdn.net/wanhongluli/article/details/97303588添加自定义Feature方法1从Feature实现原理知道,系统Feature定义在frameworks/native/data/etc目录下,这下面的xml文件会被打包拷贝到镜像system/etc/permissions目录下。所以要自定义Feature,最简单的方法就是在frameworks/native/原创 2021-06-21 17:43:28 · 3309 阅读 · 0 评论 -
Android系统替换默认输入法
需求描述使用第三方输入法APK替换Android系统原生输入法需求分析默认输入法:packages/inputmethods/LatinIME替换默认输入法方法1.内置apk到系统:Android.mk编译到系统即可2.修改源码frameworks/base/packages/SettingsProvider/res/values/defaults.xml//修改"def_input_method" "def_enable_input_methods"<string name="d原创 2021-06-10 17:03:11 · 4048 阅读 · 0 评论 -
Android系统(API>=25)第三方APK打开热点方式
android:sharedUserId="andorid.uid.system" <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="andro原创 2021-05-29 17:50:58 · 3684 阅读 · 0 评论 -
Android系统OTA差分升级失败kDownloadStateInitializationError
Android OTA差分包升级失败来自 https://blog.csdn.net/qq_25804863/article/details/80538248update_engine: [0530/162336:INFO:action_processor.cc(116)] ActionProcessor: finished DownloadAction with code ErrorCode::kDownloadStateInitializationError原因: make otapackage原创 2021-05-29 17:45:32 · 4606 阅读 · 0 评论 -
Android系统快速编译方式ninja
随着Android版本的更迭,模块的代码越来越多,单编的时间也需要的越来越多,特别是framework等大体量模块,使用mm单编一次有时候需要半个小时甚至更长。还好google提供了一种新的快速编译方式,ninja具体使用方法为:./prebuilts/build-tools/linux-x86/bin/ninja -f out/******.ninja framework -j4 *号部分跟lunch的具体项目走 使用ninja编译的话基本上十几秒就能快速编完一个模块ninja编译只适用原创 2021-05-29 17:40:46 · 6513 阅读 · 3 评论 -
Android系统解除USER版本无法进入Recovery模式限制
diff --git a/bootable/recovery/recovery.cpp b/bootable/recovery/recovery.cppold mode 100644new mode 100755index 2748c44..8154ef6--- a/bootable/recovery/recovery.cpp+++ b/bootable/recovery/recovery.cpp@@ -1036,11 +1036,11 @@ Device::BuiltinAction star原创 2021-05-29 17:36:18 · 2766 阅读 · 0 评论 -
Android系统设置默认开机时间
时间戳转化:https://tool.lu/timestampframeworks/base/services/java/com/android/server/SystemServer.java- //private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;+ private static final long EARLIEST_SUPPORTED_TIME = 1577808000000L;//2020-01-01 毫秒原创 2021-05-29 17:32:22 · 3162 阅读 · 1 评论 -
Android系统APK安装时授予所有请求权限
Android9 默认打开所有APP权限http://bbs.raindi.net/thread-26738-1-1.htmlAndroid 给 app默认权限(不弹窗申请权限)https://blog.csdn.net/qq_23327993/article/details/86646672--- a/frameworks/base/services/core/java/com/android/server/pm/permission/PermissionManagerService.java+原创 2021-05-29 17:30:53 · 4361 阅读 · 1 评论