![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
文章平均质量分 62
freerunnig
这个作者很懒,什么都没留下…
展开
-
应用的主线程和binder线程是如何启动的
kernel启动后,init进程会通过init rc配置脚本启动编译为app_process的二进制可执行文件,启动后的进程名为zygote。zygote会启动虚拟机环境,然后fork出system_server进程,进入Java世界。system_server是Android的系统进程,各大服务AMS、PMS、WMS等都运行在这个进程中。1 system_server 进程发送fork请求启动四大组件时,如果应用进程不存在,就会走到AMS创建应用进程的过程,这个进程是从zygote fork出来的原创 2022-03-25 17:06:55 · 4145 阅读 · 0 评论 -
去掉系统原生模块的一种新方法
1 修改模块的Android.mk文件见过最蠢的方法,更新模块、移植都不方便2 修改PRODUCT_PACKAGES一般的做法,暴力删除build、device下PRODUCT_PACKAGES的对应模块,缺点是分散,很难删干净,移植不方便3 新方法a 定义一个变量PRODUCT_DEL_PACKAGES在build/core/product.mk中b 将需要删除的模块赋值给这个变量PRODUCT_DEL_PACKAGES += Browser2c 在build的makefile文件中处原创 2022-03-18 17:04:59 · 645 阅读 · 0 评论 -
Android设备安装150个应用后开机耗时分析优化
设备安装150个应用后,开机耗时增加7s,主要是PMS扫描/data/app,耗时6.5s。分析发现,主要耗时在scanPackageNewLI 解析apk文件commitReconciledScanResultLocked 将解析到的组件添加到PMSbacktrace如下:frameworks/base/services/core/java/com/android/server/pm/PackageManagerService.javascanDirTracedLI |-->原创 2022-03-11 18:03:21 · 2860 阅读 · 0 评论 -
CLion调试Android 11 Native代码
1 下载并编译sources代码需要在自己电脑上编译,生成CMakeLists.txt和符号表。2 CLion配置2.1 导入第一步的代码到CLionAOSP Native代码导入IDE(CLion).2.2 设置远程调试Run -> Edit Configurations点击+号,选择GDB Remote Debug按下图配置,设置GDB路径、端口号、符号目录、路径映射3 Debug运行中的进程3.1 设置端口转发,attach进程pidadb forw原创 2020-12-16 16:16:00 · 2667 阅读 · 3 评论 -
AOSP Native代码导入IDE(CLion)
AOSP可以很容易的导入到Android Studio,可以很舒服的跳转、调试,但是仅限于Java,Native代码连跳转都不行。JB有一款C/C++的IDE CLion,很自然想到能不能导入到CLion呢?1 编译要让 IDE 正确地建立索引,我们需要让 IDE 能正确地知道源文件、头文件、宏定义等各种数据。CLion是基于CMake的,AOSP的Soong可以生成CMakeLists.txt,build目录下有文档build/soong/docs/clion.md// 打开开关,编译时生成C原创 2020-06-10 10:28:30 · 3832 阅读 · 1 评论 -
Android P(9.0) 关闭DEXPREOPT后每次开机都DEXOPT导致开机很久
最近开发Android P(9.0), 关闭WITH_DEXPREOPT(不关闭的话,编译framework或者services生成的jar包不能直接push到机器,影响开发效率,不知到有没有方法解决这个问题)后,发现每次开机都要很久。接下来我们一步一步分析第一步,看Log10:12:30.474 1338 1338 I SystemServer: UpdatePackagesIfNe...原创 2018-12-07 18:12:06 · 6987 阅读 · 5 评论 -
Ubuntu .bashrc个人配置
// Android sdk ndk路径export ANDROID_HOME="~/bin/android/sdk/"export ANDROID_SDK_ROOT=$ANDROID_HOMEexport NDK_ROOT=$ANDROID_HOME/ndk-bundleexport PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platfor...原创 2018-02-24 11:33:38 · 4107 阅读 · 0 评论 -
节电助手
为了延长电池的续航时间,节电助手会降低设备的性能,并限制振动、位置信息服务和大部分后台流量。对于电子邮件、聊天工具等依赖于同步功能的应用,可能要打开这类应用时才能收到新信息。 节电助手会在设备充电时自动关闭。Created with Raphaël 2.1.0设置节电模式的调用过程PowerManagerPowerManagerIPowerManagerIPowerManagerPowerMana原创 2016-09-06 15:52:33 · 828 阅读 · 0 评论 -
Android Studio修改应用包名
修改app/build.gradle的ApplicationId就可以了。 http://tools.android.com/tech-docs/new-build-system/applicationid-vs-packagename原创 2016-05-10 11:46:41 · 342 阅读 · 0 评论 -
android 源码编译导入library project
修改launcher,需要依赖一个library project:password,无法直接在源码中编译。google出来的结果没有合适的方法,最后在源码packageses/apps/Email中找到了答案。需要修改2个文件:launcher的Android.mk、password的Android.mkmakefile文件目录为:launcher/password/Android.mklaunc原创 2015-05-22 19:07:44 · 1133 阅读 · 0 评论