- 博客(102)
- 收藏
- 关注
原创 Android.mk解析
一、变量说明:1.LOCAL_PATH:= $(call my-dir)此行代码在Android.mk的开头,用于给出当前文件的路径LOCAL_PATH 用于在开发树中查找源文件宏函数’my-dir’, 由编译系统提供,用于返回当前路径(即包含Android.mk file文件的目录)2.LOCAL_PACKAGE_NAME := SecSettings 或 LOCAL_MODULE:= SecSettings标识在Android.mk文件中描述的每个模块。名称必须是唯一的且..
2025-05-24 00:07:16
902
原创 20200201工作笔记常用命令要整理
lunchprod [sku]-[user/userdebug] sku选项:m11_row_lte/m11_row_wifi。adb push '/home/ts/桌面/测试资源/app-debug.apk' sdcard/ (当前apk路径使用绝对路径)3.mmm framework/base/core 或者 cd framework/base/core 执行 mm。SystemUI 自动旋转快捷方式打开时 值为最后一次旋转值。辅助功能的自动旋转屏幕开关,0表示打开。旋转状态,0表示不支持旋转。
2025-05-23 23:50:05
502
原创 OpenGL
OpenGL简介什么是OpenGL ES? OpenGL(Open Graphics Library)指定义了一个跨编程语言,跨平台的编程接口规格的专业图形程序接口。用于三维/二维图形,是一个功能强大,调用方便的底层图形库。 OpenGL ES (OpenGL for Embedded Systems)是OpenGL三维图形API的子集,针对手机和游戏主机等嵌入式设备而设计。OpenGL ES相对于OpenGL来说,减少了许多不是必须的方法和数据类型,去掉了不必须的功能,对代价大的功能做了限制
2025-05-23 23:48:08
1037
原创 adb shell命令 详解adb shell 常用命令
du [-H] [-L] [-P] [-a] [-d depth] [-s] [-cghikmnrx] [file…//在2目录下创建一个名为2o.txt的2的硬连接文件(因为2的目录下已经存在2.txt文件,不然使用"ln 2.txt 2"命令就可以了)mount mount [-r] [-w] [-o options] [-t type] device directory 挂载设备信息。cmp cmp[-b][-l][-n count] file1 file2 要指出两个文件是否存在差异。
2025-05-23 23:41:31
301
原创 理解Android ANR的信息收集过程
理解Android ANR的信息收集过程http://gityuan.com/2016/12/02/app-not-response/Posted by Gityuan on December 2, 2016基于Android 6.0源码, 分析当发生ANR时系统的处理过程frameworks/base/core/java/android/os/Debug.javaframeworks/base/core/jni/android_os_Debug.cppsystem/core/li
2025-05-18 23:14:32
961
原创 开发过程中遇到Selinux问题分析
在2021年11月20日的日志中,系统应用(system_app)尝试向服务管理器(service_manager)添加一个名为event_usagestats的服务时,由于SELinux的安全策略,操作被拒绝。具体来说,system_app缺少对default_android_service的add权限。日志显示,该操作在DataServiceApplication的onCreate方法中触发,并导致java.lang.SecurityException异常。为了解决此问题,需要在SELinux策略中添加
2025-05-18 23:11:26
234
原创 Selinux权限问题处理指导文档分享
Selinux权限问题处理指导文档概述SELinux概述Selinux即Security-Enhanced Linux,由美国国家安全局(NSA)发起,Secure Computing Corporation (SCC) 和 MITRE直接参与开发,以及很多研究机构(如犹他大学)一起参与的强制性安全审查机制,该系统最初是作为一款通用访问软件,发布于2000年12月(代码采用 GPL 许可发布)。并在Linux Kernel 2.6 版本后,有直接整合进入SELinux, 搭建在Linux Sec
2025-05-18 23:07:14
1229
原创 实用的20条adb命令汇总
本文介绍了多种通过ADB(Android Debug Bridge)命令管理和调试Android设备的操作。主要内容包括:获取设备序列号和MAC地址、安装和卸载应用、查看和终止进程、管理内存和CPU使用情况、发送广播、控制通知栏、获取电池信息、禁用自动旋转、强制打开“未知来源”安装选项、修改系统设置(如时间、亮度、输入法等)以及管理电源和网络连接等。这些命令为开发者提供了强大的工具来调试和控制Android设备,适用于自动化测试和系统管理。
2025-05-18 23:03:45
566
原创 HarmonyOS 2.0系统部分功能调研
HarmonyOS 2.0系统部分功能1.隔空手势2.指关节手势3.横竖屏支持4.分屏支持1.隔空手势辅助功能-智慧感知内三个功能(隔空滑动屏幕、隔空截屏、隔空按压)1.1 隔空滑动屏幕:支持:仅支持图库和电子书。前提:在距屏幕20~40厘米处。隔空向右滑动屏幕-手朝左并稍做停留,待出现手型图标后向右挥动,可向右滑动屏幕。隔空向左滑动屏幕-手朝右并稍做停留,待出现手型图标后向左挥动,可向左滑动屏幕。隔空向下滑动屏幕-手朝上并稍做停留,待出现手型图标后向下挥动,可向下滑动屏幕。隔空向上滑动屏
2023-03-18 23:36:37
1135
原创 AndroidServices-Debug
/获取statusbar服务相关dumpsys信息。//列出当前运行的服务(服务对应name)//列出当前运行的服务(服务对应name)//查询ams的相关dumpsys 操作。//列出当前运行的服务以及对应name。//查询statusbar的相关命令。命令行对应代码调用大体流程。//查询ams的相关命令。//查询wms的相关命令。//查询pms的相关命令。
2023-03-18 23:31:33
591
原创 应用的Activity生命周期调用后EvenetLog回调
表示Activity的onResume被调用完成.Android R变更为:wm_on_resume_called (之前am_on_resume_called )Android R变更为:wm_on_create_called(之前am_on_create_called)表示Activity的onTopResumedActivityChanged(true)被调用完成.表示Activity的 onCreate被调用完成,即APP中的onCreate调用完成。表示Activity的onStop被调用完成.
2023-03-18 23:27:20
2644
原创 Android12 正式发布 | 开发者全新体验
Android12(S) Beta版本新功能 新体验 新特性1. 微件可以实现圆角,为按钮、背景及其他组件使用设备主题颜色,提供更精细的大小属性和更灵活的布局。2. 增加音频耦合触感反馈效果,可让您获得更身临其境的游戏和音频体验。3. 引进新的应用启动画面 API,新的启动动画。4. 允许按来电重要性排名的新通话通知,为通话增加新的通知样式,同时在状态栏显示带有通话时间的条状标签并且点击标签可跳转至通话界面,当然这种通知优先级最高排在最前。
2021-10-13 15:46:09
507
4
原创 常用命令Linux与Windows对比
文件及目录操作文件操作列出文件ls/ll/ls -aldir创建目录mkdir DirNamemd DirName创建文件touch fileNmetype nul:> "." / echo > filename
2021-10-12 16:45:43
761
2
原创 Android KeyEvent模拟及KeyCode原生代码对照表
Android KeyEvent KeyCode 原生安卓代码对照表:模拟手机按键HOME键adb shell input keyevent 3public static final int FLAG_WOKE_HERE = 1;public static final int KEYCODE_0 = 7;public static final int KEYCODE_1 = 8;public static final int KEYCODE_11 = 227;public static fi
2021-10-09 09:17:05
1579
原创 Android11.0(R) 关于指纹&人脸的录入及解锁源码分析
涉及模块:1. 指纹录入2. 人脸录入3. 指纹解锁4. 人脸解锁5.指纹管理6.人脸管理
2021-10-05 09:53:14
3293
1
原创 AndroidStudio应用开发优先使用提供jar包的API
编译安卓系统,全编或者单编framework。第一步:将编译好的classes.jar第二步:在 AndroidStudio 中选中 framework.jar 右键选择 Add As Library 。然后打开模块目录下的build.gradle,将implementation改成compileOnly。第三步:要想优先使用 framework.jar 中的API,还需要添加一条 preBuild 的指令。最后一步:build.gradle 中也需要添加一条如下指令
2021-09-29 20:38:27
1187
1
原创 Android系统应用导入jar包和aar包
系统应用导入jar包和aar包1.导入core.jar包,libs目录,Android.bp、Android.mk中加入相关引用。2.导入dpi.aar包,libs目录,Android.bp、Android.mk中加入相关引用。
2021-09-29 20:36:52
574
原创 软件编程自学快速入门
入门学习网站。包含了Java, Android、C\C++、算法、数据库、HTML、CSS、Javascript、Python、Ruby、PHP 、MySQL等各种编程语言的基础知识。
2021-09-08 15:48:51
15161
原创 LockSettingsService增加接口
LockPatternUtils、LockSettingsService增加setSecurityPassword(String pwd)和getSecurityPassword()方法接口
2021-09-07 20:21:23
469
原创 如何在framework层封装(判断“日落-日出”)接口提供给应用层使用
前言:大家可能在应用层比如三方应用APP、或者系统APP(如Settings)等想调用底层fw层返回得一个值,如int、boolean等。但是苦于fw给上层没有提供接口,是不是让人很头疼。今天我们就聊聊如何取fw层得一个值或者状态。 以我们实际开发中遇到得问题为例,来说说。大家不知道有人了解过“日落“、”日出”,系统是如何判断的吗?可能大部分人没有遇到过。其实每天日落日出时间是不一样的,只需要判断当前系统时间是否在“日落-日出”。系统时间很好获取,但是如何知道当天日落和日出时间呢!?这是一个...
2021-09-07 19:44:20
1152
原创 publishBinderService和publishLocalService区别
SystemService.java中的两个重要方法:publishBinderService和publishLocalService区别
2021-09-01 20:11:31
1806
2
原创 Android Framework 面试总结
Java语言的特点和特性Android开发面试经典题目Android系统启动流程内存泄漏检测实战
2021-06-01 18:46:20
2887
3
原创 安卓源码流程
安卓流程:Android之zygote源码剖析(一)[https://www.jianshu.com/p/83d457cd117e](https://www.jianshu.com/p/83d457cd117e)Android之SystemServer介绍(一)https://www.jianshu.com/p/1079f06984b4
2021-06-01 18:09:23
234
原创 Systrace
TRACE:在命令行上捕获系统跟踪记录https://developer.android.google.cn/topic/performance/tracing/command-line?hl=zh-cnperfettohttps://developer.android.google.cn/studio/command-line/perfetto?hl=zh-cn开发这模式的系统trace使用PerfettoUI打开https://developer.android.google.cn/topic
2021-06-01 18:06:10
253
原创 dumpsys
dumpsys:android dumpsys实时查看各service状态https://blog.youkuaiyun.com/kc58236582/article/details/51159935https://blog.youkuaiyun.com/wd229047557/article/details/88319358adb命令(电池相关)https://www.jianshu.com/p/9636d17907b7
2021-06-01 18:01:47
372
原创 工作中遇到问题资料-未整理
学习资料:资料:工具类:SecureCRT配色推荐和永久设置https://blog.youkuaiyun.com/zq710727244/article/details/53909801平时遇到:SD异常拔出流程浅析https://blog.youkuaiyun.com/sgzy001/article/details/44857955Android O适配—NotificationChannelhttps://blog.youkuaiyun.com/misiyuan/article/details/78384819Med
2021-05-30 20:10:59
202
2
原创 字节跳动面试初
startActivityForResult()的使用?如果两个activity不在一个栈内,result怎么传递?跳转机制的关键在于如何定义requestCode, resultCode这两个参数,结合好这两个参数就能够实现非常多的功能,而且Intent又能够搭载数据,excellent!!Activity的启动模式。1,standard默认模式,可以不用写配置。在这个模式下,都会默认创建一个新的实例。因此,在这种模式下,可以有多个相同的实例,也允许多个相同Activity叠加。2,sin
2021-05-27 16:12:45
201
转载 Android App性能流畅度测评分析可以用到工具
1.前言在手机App竞争越来越激烈的今天,Android App的各项性能特别是流畅度不如IOS,安卓基于java虚拟机运行,触控响应的延迟和卡顿比IOS系统严重得多。一些下拉上滑、双指缩放快速打字等操作,安卓的流畅度都表现比较糟糕,但是,对于App使用过程是否流畅,一直没有一个可靠的指标将用户的客观感受和数据一一对应。虽然之前有FPS(每秒帧数)作为游戏或视频类App的性能指标,但对于那些界面更新不多的App来说,仍不是一个合适的衡量数据。以下会根据实际app性能测试案例,展开进行app性能评测之流畅
2021-01-20 17:41:20
1678
转载 Android应用优化之冷启动优化
Android应用优化之冷启动优化前言事件发生在发包上线的前两天,在某某云进行移动测试时,提示冷启动速度低于平均值的问题,之前自己也曾尝试过优化,但是发现效果并不是很明显,作为一个有追求的开发者,趁着有点空闲时间,要好好研究一下冷启动优化问题。App的启动流程我们可以了解一下官方文档《App startup time》对App启动的描述。应用启动分为冷启动、热启动、温启动。而冷启动是应用程序从零开始,里面涉及到更复杂的知识。我们这次主要是对应用的冷启动进行分析和优化。应用在冷启动的时候,需要
2021-01-20 17:32:20
392
1
转载 Android应用优化之流畅度实操
Android应用优化之流畅度实操上一篇流畅度概念向大家详细地描述了VSync机制和Choreographer编舞者的用法。可能所讲解的内容偏向理论概念,因此这篇是流畅度优化实操,整篇主要分三层,UI层、代码逻辑层、IO层来讲述各个优化点,其中还会穿插多个辅助检测插件。可谓干货满满,希望对大家有用。最基本的UI层显示优化1.调试GPU过度渲染在App出现卡顿的时候,我们第一时间会想到我们的App是不是存在过度绘制的问题。为什么要先看过度绘制的问题,因为直接直观方便啊,在每一台手机的开发者选项里中打
2021-01-20 17:29:36
325
转载 Android应用优化之流畅度
Android应用优化之流畅度https://juejin.cn/post/6844903481245958158前言对于现今市面上针对于用户交互的应用,都有使用列表去展示信息。列表对于用户来说是十分好的浏览、接收信息的一个控件。对于产品来说,列表流畅度的重要性就不言而喻了。而流畅度的好坏,对一个产品的基本体验和口碑有着极大的影响。然而Android手机与iPhone手机对比,第一点往往就是流畅度的问题,对于技术来说,我们的Google亲爹,不断对这个诟病进行优化,包括GPU硬件加速、将Dalv
2021-01-20 17:00:21
405
转载 Android性能优化---卡顿分析,正确评测流畅度
一、FPS评测应用流畅度不准确说到应用的流畅度,都会想到FPS,系统获取FPS的原理是:手机屏幕显示的内容是通过Android系统的SurfaceFLinger类,把当前系统里所有进程需要显示的信息合成一帧,然后提交到屏幕上进行显示,FPS就是1秒内SurfaceFLinger提交到屏幕的帧数。用FPS来评测一个应用是否真的卡顿存在两个问题。有的时候FPS很低,APP看起来却很流畅;APP停止操作之后,FPS还是在一直变化,这种情况是否会影响到FPS的准确度?有的时候FPS很低,APP看起来却很流
2021-01-20 16:27:27
752
转载 Android:通过systrace进行性能分析及使用-详细
Android:通过systrace进行性能分析https://www.cnblogs.com/blogs-of-lxl/p/10926824.html一、Systrace 简介 Systrace 允许您在系统级别(如SurfaceFlinger、WindowManagerService等Framework部分关键模块、服务、View系统等)收集和检查设备上运行的所有进程的计时信息。 它将来自Android内核的数据(例如CPU调度程序,磁盘活动和应用程序线程)组合起来,以生成HTML报告。
2021-01-20 14:26:11
8483
原创 Android检查GPU呈现模式和过度绘制
Android提供了一些工具可以用来帮助分析你的UI是否存在图形绘制问题,例如执行过多不需要的绘制工作,或执行长时间的GPU操作。分析GPU呈现模式GPU呈现模式工具以滚动直方图的形式展现,显示渲染UI窗口每帧所花费的时间,系统的基准时间是于每帧16ms。这个分析工具可以帮助确定GPU在图形绘制过程中各阶段的状态,或过度绘制引起渲染性能降低的情况。打开 GPU 呈现模式分析在Android 4.1以上的系统中,需要分析应用的GPU呈现速度时,可以通过两种方式打开 GPU 呈现模式。在设备
2021-01-18 17:09:39
7079
原创 Android SystemUI状态栏&通知栏图标及字体颜色切换流程
界面切换Statusbar.setSystemUiVisibility()@Override public void setSystemUiVisibility(int vis, int fullscreenStackVis, int dockedStackVis, int mask, Rect fullscreenStackBounds, Rect dockedStackBounds) { //调用LightBarController的onSy...
2021-01-15 15:43:51
2872
1
转载 理解Android ANR的触发原理
理解Android ANR的触发原理http://gityuan.com/2016/07/02/android-anr/一、概述ANR(Application Not responding),是指应用程序未响应,Android系统对于一些事件需要在一定的时间范围内完成,如果超过预定时间能未能得到有效响应或者响应时间过长,都会造成ANR。一般地,这时往往会弹出一个提示框,告知用户当前xxx未响应,用户可选择继续等待或者Force Close。那么哪些场景会造成ANR呢?Service Ti
2020-12-31 17:36:17
876
转载 全方位解读“CPU load average“
前一段时间,有同事因为“CPU负载到达5算不算高”的问题争论了一番,看似简单的一个问题表明了我们并没有真正理解服务器的CPU负载。如果你的线上服务出现性能问题,那么检查机器的CPU负载情况是必不可少的一个环节。我们通过简单执行uptime命令就可以知道服务器当前的CPU负载情况。现在我们来看一个简单的例子, 1 load average:1.14,0.7,4.06 上面的load average从左到右显示的分别是最近1分钟,5分钟,15分钟的...
2020-12-31 17:34:33
353
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人