自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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 ActivityStarter 完整解析

【代码】Android ActivityStarter 完整解析。

2026-05-31 21:43:45 247

原创 Android 为什么必须用 system_server?

│ 设计目标 ││ ││ 1. 🔒 安全第一 ││ └── 权限检查必须在可信环境执行 ││ ││ 2. 🏠 资源统一管理 ││ └── 硬件/内存/CPU必须受系统控制 ││ ││ 3. 🔄 进程隔离 ││ └── App崩溃不能影响系统核心 ││ ││ 4. 📋 生命周期协调 ││ └── 多个App运行时需要有人统筹 ││ ││ └── system_server有特殊Linux权限 ││ │这就像:🌐 操作系统 = 国家政府。

2026-05-31 19:44:44 231

原创 Android Framework 核心架构图

【代码】Android Framework 核心架构图。

2026-05-31 17:07:51 52

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

转载 Android图形系统概述

Android图形系统了解,熟悉

2022-05-23 16:39:07 853

转载 Cgroup是什么(相关概念、功能、作用、特点、怎么用)

cgroups了解

2022-05-23 14:56:34 1871

原创 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 的一些快捷键

1.选中接口类按Ctrl +T 弹出所有实现的类,有三角行的说明有子类。

2016-11-25 00:28:39 532

转载 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

原创 利用WebView加载HTML代码时解决图片正常显示

解决办法:WebView 提供了一个loadData

2014-11-08 23:40:49 658

转载 java-如何去掉JFrame上的最大化最小化和关闭按钮

java-如何去掉JFrame上的最大化最小化和关闭按钮在JDK1.4以前,我们只有一种方式来去掉窗口的标题栏,那就是直接使用JWindow,用JWindow来代替JFrame使用。但用过JWindow的人一定知道,JWindow在操作系统的任务栏是不可见的,这样我们就无法在几个视窗之间来切换到这个窗口了。      使用JWindow也是很多人知道的一种去掉标题栏的方式。

2013-12-11 11:03:30 1587

微信6.0主界面实例

微信6.0主界面实例

2016-12-11

空空如也

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

TA关注的人

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