- 博客(41)
- 资源 (1)
- 收藏
- 关注
原创 Android 理解onTransitionReady(一)
本文摘要:onTransitionReady是Android窗口过渡动画的核心触发机制,其流程为:1)Activity启动时创建Transition并开始收集参与者;2)通过BLASTSyncEngine同步所有Surface绘制;3)当所有参与者完成绘制后,系统回调onTransactionReady;4)Transition合并所有Surface事务后,调用ShellTransitionPlayer.onTransitionReady通知Shell进程;5)Shell接收到包含动画信息的Transiti
2026-05-31 21:59:35
244
原创 Android 理解requestStartTransition过渡动画
Android系统Shell过渡动画流程解析 摘要:本文详细分析了从Activity启动到Shell动画执行的完整流程。关键节点包括:1) ActivityStarter创建并收集Transition;2) 通过TransitionController将Transition请求发送到wm/shell进程;3) Shell端接收请求并执行动画;4) 动画完成后通知WMS使Activity进入RESUMED状态。流程涉及跨进程通信(通过ITransitionPlayer接口),并对比了传统过渡与Shell过渡的
2026-05-31 21:52:35
194
原创 Android 为什么必须用 system_server?
│ 设计目标 ││ ││ 1. 🔒 安全第一 ││ └── 权限检查必须在可信环境执行 ││ ││ 2. 🏠 资源统一管理 ││ └── 硬件/内存/CPU必须受系统控制 ││ ││ 3. 🔄 进程隔离 ││ └── App崩溃不能影响系统核心 ││ ││ 4. 📋 生命周期协调 ││ └── 多个App运行时需要有人统筹 ││ ││ └── system_server有特殊Linux权限 ││ │这就像:🌐 操作系统 = 国家政府。
2026-05-31 19:44:44
231
原创 Android 验证进程优先级设置是否成功
设置前后的对比// 1. 在设置优先级前先验证一次// 2. 设置优先级// 3. 再次验证,查看值是否变化预期结果。
2026-05-17 16:38:30
197
原创 Android 常驻进程如何被查杀?
用户应用的常驻服务 :完全可以降低优先级,使其更容易被查杀- 系统级常驻进程 :不建议修改,可能影响系统稳定性- WakeLock 的影响 :持有 WakeLock 的进程优先级更高,释放后更容易被杀- 前台服务的影响 :前台服务优先级最高,停止后优先级大幅降低。
2026-05-17 16:12:03
67
原创 Android 如何降低进程优先级可以被查杀?
OOM_ADJ 值越大,越容易被杀 :从 0(前台)到 15(空进程)- 前台服务优先级最高 :必须有通知才能运行- 后台进程最容易被杀 :系统内存不足时首先清理- 主动结束进程 :使用 killProcess() 可以直接终止。
2026-05-17 16:02:08
97
原创 Android 如何提高进程优先级避免被查杀?
/ 1. 前台 Service + 通知// 2. START_STICKY 返回值// 3. onDestroy 中重启// 4. 提高进程优先级// 5. 绑定到系统进程(如果可能)
2026-05-17 15:50:54
85
原创 Android AMS创建进程不用Binder而用Socket?
1. Socket = 用于 触发进程创建 (因为可以调用 fork())2. Binder = 用于 进程间通信 (进程创建后使用,效率更高)这是 Android 系统设计的精妙之处: 用 Socket 创建进程,用 Binder 通信 ,两者各司其职!
2026-05-17 11:42:29
385
原创 CPU参数提频调优
cpu参数调优_/sys/devices/system/cpu/cpu0/cpufreq/scaling_gover_半只丶兔子的博客-优快云博客
2023-08-23 09:27:54
281
原创 Android性能优化知识汇总
1.启动优化 · 基础论 · 浅析Android启动优化 - 掘金2.App 启动时间优化详解 1.抖音Android包体积优化探索:从Class字节码入手精简DEX体积 2.Android包体积优化极致手段!1.抖音 Android 性能优化系列:新一代全能型性能分析工具 Rhea2.Perfetto分析进阶
2023-07-29 16:19:59
495
原创 android 6.0设置好默认蓝牙名称后,配对时蓝牙名称变更了
原因:因两台机器的默认蓝牙地址相同,配对时会出现名称变化解决办法:重新烧两台蓝牙地址不同的机器测试就不会出现此问题
2023-07-29 16:07:04
967
转载 Android性能优化实践之App端
内存优化在Android开发中,有一些实践可以帮助进行内存优化,以减少应用程序的内存占用和提高性能。以下是一些常见的内存优化实践:使用合适的数据结构和集合:选择合适的数据结构和集合来存储和操作数据,以减少内存占用。例如,使用SparseArray代替HashMap,使用ArrayList代替LinkedList等。及时释放资源:在不再需要的时候,及时释放资源,如关闭数据库连接、释放文件句柄、取消注册广播接收器等。避免内存泄漏:确保在不再需要时及时释放对象的引用,避免造成内存泄漏。
2023-07-29 15:58:51
281
原创 Android8.0 开机后,进入锁屏界面会闪黑一下解决
After the phone power on , the screen will be black about 1s,then appear lockscreen开机后,进入锁屏界面会闪黑一下,谷歌机器没有出现这个问题1、此问题需要AMS/WMS的log才能继续分析,需按照如下方式打开AMS/WMS的debug开关:adb shell dumpsys activity log x on...
2019-07-09 15:53:58
2061
原创 android PIN码解锁流程
解锁流程log:08-22 04:42:31.508 3194 3194 I chensenquan: =========verifyPasswordAndUnlock=======08-22 04:42:31.810 3194 3194 I chensenquan: verifyPasswordAndUnlock onEarlyMatched08-22 04:42:31.810 31...
2019-07-09 15:43:56
7049
原创 Fingerprint 解锁流程
1.defect:7033783 指纹解锁太慢流程ALPS03313857:1)、指纹解锁的大致flow 如下:sensor上报校验成功。。。//keyguard处理==>FingerprintUnlockController.onFingerprintAuthenticated==>KeyguardViewMediator.keyguardDone==>Keyg...
2019-07-09 15:40:43
14486
原创 Smart Lock人脸解锁用法
参考FAQ13840 Smart Lock人脸解锁用法:前提: Smart Lock要开启必须将屏幕锁定方式设置为“图案”、“PIN”或“密码”。设置完成后,在锁屏界面最下方中间锁的图形会变成一个人的图形。这个时候如果将前置摄像头对准设置的人脸,确认后图案将会变成一个解开的锁(锁芯未连着锁),这个时候上滑这个锁图案即可解锁(不用再输入密码)。也就是说: 不会再有人脸识别的界面 ...
2019-07-09 15:39:05
6835
转载 如何分析解决Android ANR
一:什么是ANRANR:Application Not Responding,即应用无响应 二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:Se...
2018-12-06 17:32:43
2950
原创 android8.0 Fingerprint 指纹输错5次后亮屏显示错误信息
当有指纹解锁时,会执行AuthenticationClient.java-->onAuthenticated()一直在监听解锁行为@Override public boolean onAuthenticated(int fingerId, int groupId) { boolean result = false; boolean authenti...
2018-12-06 17:29:20
4792
原创 android 8.0 Fingerprint 指纹识别震动解析
先从息屏或者按power键指纹监听开始分析1.当灭屏后会从PhoneWindowManager.java执行startedGoingToSleep()方法: // Called on the PowerManager's Notifier thread. @Override public void startedGoingToSleep(int why) { ...
2018-12-06 15:23:37
1960
转载 如何分析Android ANR并解决
一:什么是ANRANR:Application Not Responding,即应用无响应二:ANR的类型ANR一般有三种类型:1:KeyDispatchTimeout(5 seconds) --主要类型按键或触摸事件在特定时间内无响应2:BroadcastTimeout(10 seconds)BroadcastReceiver在特定时间内无法处理完成3:ServiceTimeout(20 sec...
2018-06-11 22:58:52
771
原创 android xml dialog的使用
1.创建xml文件panic_button_settings xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" android:title="@string/panic_button_settings"> android:ke
2017-01-17 09:47:34
1051
转载 解决java.util.concurrent.RejectedExecutionException
前言昨晚12:00运行自动化测试脚本时遇到了java.util.concurrent.RejectedExecutionException这个异常,从异常名称里很容易分析出是提交的任务被线程池拒绝了。查看源码发现是在Activity里,AsyncTask是在自定义的线程池的运行的,但是onDestory函数里确是先显示调用了线程池的shutdown方法,然后才是AsyncTask的cancel
2016-12-21 08:47:37
10326
转载 android v7.widget.SearchView的使用
我们的项目中很多的搜索功能都是通过SearchView来实现的,因为这个控件给我们封装了很多功能,也正因为这个,SearchView很多样式不好控制,比如输入框的背景图片,输入框的字体颜色等等!不过如果看过源码的朋友就能轻松实现这些。ok,来看下SearchView的使用步骤1、定义 menu.xmlhttp://schemas.android.com/apk/res/android"
2016-11-25 00:11:49
6078
1
原创 android 学习微信6.0主界面
1.android的一些资源图片位置:sdk/platforms/android-17/data/res/drawable-hdpi
2016-11-19 09:36:38
499
原创 android 设定wifi SSID和MAC地址的绑定
package com.android.settings.wifi;public class WifiSettings extends RestrictedSettingsFragment implements DialogInterface.OnClickListener, Indexable, WifiTracker.WifiListener, Access
2016-11-12 16:55:45
6005
原创 android SQLiteOpenHelper和ContentProvider的结合使用
package com.android.settings.wifi;import android.content.ContentProvider;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android
2016-11-12 14:23:44
832
原创 android 切换到阿拉伯语电话号码+号显示在右侧及顺序错乱的处理
1.来电通知栏电话号码+号显示在右侧的修改位置:packages/apps/InCallUI/src/com/android/incallui/StatusBarNotifier.java刚开始修改的时候,在方法buildAndSendNotification()中添加://add by chensenquan20160727Configuration con =mContext.
2016-11-12 11:31:47
8168
转载 android WIFI连接开发
这里列了很多,但是大致可以分为四个主要的类ScanResult wifiConfiguration WifiInfo WifiManager(1)ScanResult,主要是通过wifi 硬件的扫描来获取一些周边的wifi 热点的信息。在我们进行wifi 搜索的时候,一般会搜到这些信息,首先是接入点名字、接入点信息的强弱、还有接入点使用的安全模式,是WPA、WPE。打开这个类,我们可以
2016-11-12 11:25:11
530
转载 android下获取无线wif信号、ssid、MAC等操作类
WifiAdmin.javapackage com.afu;import java.util.List;import android.content.Context;import android.net.wifi.ScanResult;import android.net.wifi.WifiConfiguration;import android.net.wifi.WifiInfo
2016-11-12 11:15:41
5311
转载 android自动连接指定wifi
public class WifiAutoConnectManager {private static final String TAG = WifiAutoConnectManager.class.getSimpleName();WifiManager wifiManager;// 定义几种加密方式,一种是WEP,一种是WPA,还有没有密码的情况publi
2016-11-12 11:13:19
557
转载 Android发送邮件
Android发送邮件 (2013-04-08 09:37:05)转载▼ 分类: Android一:最基本的发送邮件Intent data=new Intent(Intent.ACTION_SENDTO);data.setData(Uri.parse("mailto:1213244340@qq.com")); data
2015-06-11 13:15:24
735
转载 android GridView item设置高度相同
建议要控制这个Gridview里面item的高度的话,自己重写一个adapter.因为需要在里面的getview()方法里面加代码.原帖:http://stackoverflow.com/questions/5690144/how-can-i-force-a-gridview-to-use-the-whole-screen-regardless-of-display-size。注意:GridVie
2015-01-06 20:24:55
3843
原创 設置GridView最多顯示幾行,然后內容多時自動添加滑動條
ViewGroup.LayoutParams layoutParams = gridviewCategory.getLayoutParams();layoutParams.height = activity.getResources().getDimensionPixelSize(R.dimen.order_category_gridview_height_size);//重新設置高度gr
2014-11-22 18:21:00
711
转载 java-如何去掉JFrame上的最大化最小化和关闭按钮
java-如何去掉JFrame上的最大化最小化和关闭按钮在JDK1.4以前,我们只有一种方式来去掉窗口的标题栏,那就是直接使用JWindow,用JWindow来代替JFrame使用。但用过JWindow的人一定知道,JWindow在操作系统的任务栏是不可见的,这样我们就无法在几个视窗之间来切换到这个窗口了。 使用JWindow也是很多人知道的一种去掉标题栏的方式。
2013-12-11 11:03:30
1587
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅