- 博客(111)
- 资源 (2)
- 收藏
- 关注
原创 MTK user+root版本配置方式
1,system/core/adb/daemon/main.cpp--- a/system/core/adb/daemon/main.cpp+++ b/system/core/adb/daemon/main.cpp@@ -72,38 +72,8 @@ static bool should_drop_capabilities_bounding_set() { } static bool should_drop_privileges() {- // "adb root" not all
2021-02-07 18:08:12
1012
1
原创 Android 判断app是否正在播放音乐
首先播放音乐的时候,执行下adb命令:adb shell dumpsys power|grep -i wake以播放网易云音乐为例:C:\Users\Administrator>adb shell dumpsys power| findstr -i wake no_cached_wake_locks=true mWakefulness=Awake mWakef...
2020-03-19 19:28:50
5208
原创 Android 原生省电模式
点击SystuemUI的下拉栏的省电模式按钮,首先调用的是BatteryControllerImpl.java的setPowerSaveMode() @Override public void setPowerSaveMode(boolean powerSave) { BatterySaverUtils.setPowerSaveMode(mContext, po...
2020-03-13 13:55:43
3591
1
原创 Android APK调用系统隐藏api
APK调用隐藏api已调用SerialService为例1,修改frameworks\base\core\java\android\hardware\SerialManager.java添加如下代码:public static SerialManager getInstance(Context context){mSerialManager = ...
2020-02-17 16:04:28
1485
原创 MySql学习(一)数据库的CRUD操作
数据库的CRUD操作首先登陆数据库服务器:mysql -u(账号) -p(密码) (mysql -uroot -pmysql)退出数据库服务器:exit创建数据库:create database 数据库名称;创建数据库时,指定字符集:create database 数据库名称 character set utf8;create datab...
2020-01-01 11:31:57
252
原创 Android MTK 添加开关机动画
1,vender下添加开关机的压缩包vender下创建文件夹 res,添加文件,并创建一个install.mk(mk文件名称可以随意起)install.mk按如下编译LOCAL_PATH := $(my-dir)MY_PATH := vendor/resSYSTEM_OUTDIR=out/target/product/k61v1_64_bsp/systemMEDI...
2019-11-12 18:15:19
1252
原创 Android 预制输入法
以预制搜狗输入法为例:1.packages/apps/下添加SogouInput文件夹添加apk和Android.mk # SogouInput LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := SogouInput LOCAL_MODULE_CLASS :...
2019-11-08 14:02:38
588
原创 Android FM流程分析
一,FM主要类介绍FmMainActivity.java 主界面FmService.java 核心FmNative.java 调用JNI和底层通信二,FM主要功能介绍1,收音播放: 1 ) 搜台 2)收藏 3)耳机/外放播放 4) 切台 5)定时关闭 6)飞行模式2,录音播放三,流程分析1,不插入耳机...
2019-10-29 15:18:32
2208
1
原创 Android 卡顿原因
要理解卡顿原因,需要先了解16ms原则https://www.cnblogs.com/upwgh/p/10897576.html一.16ms原则由于人眼的特殊构造,对于60fps以下的帧率画面,会给人一种卡顿的现象,所以就出现了16ms原则(1000ms/60fps = 16ms),即要保证页面16ms刷新一次。Android系统每隔16ms发出vsync信号,触发对UI进行渲染,...
2019-10-25 18:08:47
497
原创 Android Frameworks 关机流程
关机流程我们从按power键-到dialog弹出,再到ShutdownThread,一步一步来讲一.按power键大家都知道长按power键会弹出关机重启提示框,而按键的捕获都是在PhoneWindowManager.java中PhoneWindowManager.java-->interceptPowerKeyDown()private void interceptPow...
2019-03-30 16:04:45
902
原创 Android 8.1 Doze模式分析(三)Light Doze模式流程分析
在第一篇Android 8.1 Doze模式分析(一)我们知道,如果设备处于未充电且屏幕关闭状态,就会进入Light Doze模式,在LightDoze模式中,会定期进行维护,这种维护会持续N分钟,在维护状态(maintenance)时,会进行网络的访问,和同步、JobScheduler的操作,然后又会进入Idle状态,持续多次。之后如果设备仍旧保持静止,则会进入Deep Doze模式,因此,如果...
2019-01-22 11:38:11
2440
原创 Android 8.1 Doze模式分析(三)释放WakeLock
在第一篇Android 8.1 Doze模式分析(一)我们知道,进入深度doze模式后调用PowerManagerService.java的setDeviceIdleMode()释放WakeLock,现在我们就开始分析释放WakeLock的流程PowerManagerService.java-->setDeviceIdleMode() @Override ...
2019-01-21 16:37:51
1287
原创 Android 8.1 Doze模式分析(二)对网络的限制
在第一篇Android 8.1 Doze模式分析(一)我们知道,进入idle模式后调用NetworkPolicyManagerService.java的setDeviceIdleMode()对网络进行限制,现在我们就开始分析网络限制的流程 @Override public void setDeviceIdleMode(boolean enabled) { mCo...
2019-01-21 16:11:05
3526
2
原创 Android AMS(七) Activity与WMS的连接过程
概括我们从两方面来看Activity组件与WindowManagerService服务之间的连接。一方面是从Activity组件到WindowManagerService服务的连接,另一方面是从WindowManagerService服务到Activity组件的连接。从Activity组件到WindowManagerService服务的连接是以Activity组件所在的应用程序进程为单位来进行...
2019-01-14 10:59:56
1197
1
原创 Android AMS(六) Activity与WMS的连接过程之AppWindowToken
概述Activity组件在WindowManagerService服务和ActivityManagerService服务之间的连接是通过一个AppWindowToken对象来描述的每一个Activity组件在启动的时候,ActivityManagerService服务都会内部为该Activity组件创建一个ActivityRecord对象,并且会以这个ActivityRecord对象所...
2019-01-11 17:02:50
3661
1
原创 Android AMS(五) Activity的视图对象(View)的创建过程分析
从Android AMS(四) Activity的窗口对象(Window)的创建过程分析知道,每一个Activity组件都有一个关联的Window对象,用来描述一个应用程序窗口。每一个应用程序窗口内部又包含有一个View对象,用来描述应用程序窗口的视图。应用程序窗口视图是真正用来实现UI内容和布局的,也就是说,每一个Activity组件的UI内容和布局都是通过与其所关联的一个Window对象的内部...
2019-01-10 17:19:34
531
原创 Android AMS(四) Activity的窗口对象(Window)的创建过程分析
在Android AMS(二) App启动过程之onCreate中讲到,在activity到onCreate状态前,会调用Activity.java-->attach()方法 final void attach(Context context, ActivityThread aThread, Instrumentation instr, IBinder t...
2019-01-10 10:58:00
1238
1
原创 Android AMS(三) App启动过程之onResume
在Android AMS(二) App启动过程之onCreate中我们讲了onCreate的调用流程,这篇我们接着分析onResume的流程ActivityThread.java-->handleLaunchActivity()中调用performLaunchActivity()走到activity的onCreate,onStart状态后,会调用handleResumeActivity(...
2019-01-09 09:54:47
2182
原创 Android AMS(二) App启动过程之onCreate
在Android AMS(一) App启动过程之Task,进程创建流程中我们讲到了Process.start,在这里会通过zygote启动进程,通过反射调用ActivityThread的main函数 public static void main(String[] args) { Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MAN...
2019-01-08 16:34:51
1266
原创 Android WMS分析(一) WindowManager
1.WindowManager ,WMS,Window三者关系WindowManager是一个接口类,继承自接口ViewManager,负责管理Window,他的实现类是WindowManagerImpl。如果我们相对Window进行添加,更新,删除,就需要通过WindowManager,其会将具体的工作交给WindowManagerService(WMS)处理而Window是一个抽象类,...
2018-12-28 17:51:47
1225
原创 Android 8.1 App Standby
App Standby黑白名单配置流程如图所示,可选择优化和不优化代码路径:packages\apps\Settings\src\com\android\settings\fuelgauge\HightPowerDetail @Override public void onClick(DialogInterface dialog, int which) { ...
2018-12-28 11:48:51
849
原创 Android 8.1 Doze模式分析(一)
概述Doze模式可以简单概括为:若判断用户在连续的一段时间内没有使用手机,就延缓终端中APP后台的CPU和网络活动,以达到减少电量消耗的目的。Doze模式(低电耗模式),是Andoriod6.0增加的一项系统服务,主要目的是为了优化电池性能,增加电池续航时间,Doze模式又分两种模式:深度Doze模式(Deep Doze)和轻度Doze模式(Light Doze),如果用户长时...
2018-12-27 17:56:37
7693
1
原创 展讯定屏操作指导
》定屏 操作指导:(这个是user版本的) 测试要求: 1.插入>8G T卡 2.测试前调整手机时间和电脑时间一致 3.保留对应手机测试版本的vmlinux和symbols文件夹 symbols目录: /out/target/product/sp9832e_1h10_go/symbols vmlinux目录: /out/target/product/sp9832e_1h10_...
2018-12-21 09:46:37
1001
原创 Android 网络开发(一) okHttp网络请求之缓存控制Cache-Control
Cache-Control:Cache-Control指定请求和响应遵循的缓存机制。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令有下几种:Public指示响应可被任何缓存区缓存。 Private指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请...
2018-12-18 17:15:54
484
原创 Android中解决布局加载中setVisibility(View.GONE))失效问题
今天在写一个加载动画,发现第二次以后进入界面,加载动画不会消失最后参考这篇博客,解决了https://blog.youkuaiyun.com/Xiongjiayo/article/details/81878929记录一下!解决方法:在添加的控件布局中添加android:visibility="gone"属性总结:对需要设置可见或不可见的控件一定要在布局中的控件属性中添加android:...
2018-12-15 17:24:19
3255
2
转载 Android LowMemoryKiller 初识
lowmemorykiller: Killing 'apps.searchlite' (27533:27533), adj 900,一、内容预览1、为什么引入LowmemoryKiller? 进程的启动分冷启动和热启动,当用户退出某一个进程的时候,并不会真正的将进程退出,而是将这个进程放到后台,以便下次启动的时候可以马上启动起来,这个过程名为热启动,这也是Android的设计...
2018-12-11 14:12:46
625
原创 android展讯平台 重启案例分析(三) monkey anr
1.参看sys_info信息sys_info 003 [ df ] [11-26 04:02:17.995] Filesystem 1K-blocks Used Available Use% Mounted ontmpfs ...
2018-12-07 15:32:45
1166
原创 AS:android studio Unable to start the daemon process
今天用着电脑,突然蓝屏了,然后重启电脑,Android studio 就出现这个错误:Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is us...
2018-12-06 15:33:33
206
原创 AS : Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.
今天更新了下grade,突然跳出来:Error:Could not resolve all dependencies for configuration ':app:debugRuntimeClasspath'.解决方法:在项目的build.gradle 的buildscript 和 allprojects同时加上了 mavenCentral() buildscript { ...
2018-12-04 11:36:17
14681
2
转载 Android MTK 平台开关机、重启时间优化(三)
问题描述问题分析bootloader 优化kernel层优化frameworks层优化debug 技术说明总结问题描述开机时间相对参考机过慢,大约慢15s左右。Android 系统7.0。问题分析开机问题涉及的层次较多,大致有bootloader–>kernel–>Zygote–>PMS–>AMS–>Launcher 可以借助bootchart...
2018-12-03 15:54:53
1866
转载 Android MTK 平台开关机、重启时间优化(二)
一、在工程模式开启MTKLogger, 开机后取日志bootprof adb pull /storage/emulated/0/mtklog/mobilelog/APLog_2018_0309_100752/bootprof d:/mtk二、开机日志分析2.1 Preloader&lk time Preload和lk启动时间如下:-----------------------...
2018-12-03 15:52:07
1736
转载 Android MTK 平台开关机、重启时间优化(一)
一、开关机、重启时间优化:开机性能优化:是用功能和其它因素多方面平衡的结果,片面追求单方面的性能没有太大意义;有些产品设计开机动画非常酷炫,动画图片过多、高帧率会影响开机速度,这时就需要看是开机速度优先还是体验优先;1.zygote,预加载class、resources;加载的多了,会影响开机时间;/sdcard/mtklog/bootprof12450.516490 : 860-syst...
2018-12-03 15:47:41
2749
转载 Android 8.1 之省电模式分析
1. 功能概述Battery saver是Google在Android L上新增的选项,这个功能是在Setting -> Battery (–> more (androidO以前的路径)) –> Battery saver,这个功能主要是为了在相同电量下能够更长时间的使用手机,简称:“省电助手”。打开之后手机将处于省电模式,省电模式下电池使用量将大大降低,一些不必要的耗电...
2018-12-03 14:34:31
1877
原创 AS lambda expressions are not supported at language level 7
file-->Project Structure
2018-12-03 11:28:15
409
原创 Android Studio3.1 坑三:Could not resolve com.android.support:appcompat-v7:28.+
File-->Settings-->Gradle 勾选Offline work
2018-11-17 14:37:57
1340
原创 Android 系统修改分区
一. MTK/device/mediateksample下搜索grep -nr "BOARD_MTK_VENDOR_SIZE_KB" ./看是否有相关客制化修改如果没有截图中的客制化修改的话打开alps-mp-o1.mp1-V1\alps\XXX\XXX\device\mediatek\build\build\tools\ptgen\MTXXXX修改partition...
2018-11-12 15:10:21
7214
转载 使用Retrofit+RxJava下载文件并实现APP更新
后台接口这次就不能再像上一年那样通过一个txt文件来存储apk信息了,我们要做的就是请后台吃顿饭,写一下以下接口上传接口putApk这个接口用于方便我们上传新版本,可暂时配合postman使用获取apk接口 getApk我们通过当前版本号和version的对比判断是否需要更新Gradle配置 //retrofit implementation 'co...
2018-11-12 10:31:48
1381
1
转载 [Power] 使用Battery Historian生成电量消耗报告
1 数据准备1.1 先断开adb服务,然后开启adb服务(a)adb kill-server 这一步很重要,因为当我们开发时做电量记录时会打开很多可能造成冲突的东西。为了保险起见我们重启adb。adb devices就会自动连接查找手机。备注:mac可以直接使用adb命令;但是windows不行,需要进入到adt下:adt-bundle-windows-x86_64-201...
2018-11-09 16:12:00
752
原创 [Power] wakelock机制
源码 位置:frameworks/base/core/java/android/os/PowerManager.javaWake Lock是一种锁的机制, 只要有人拿着这个锁,系统就无法进入休眠, 可以被用户态程序和内核获得. 这个锁可以是有超时的 或者 是没有超时的, 超时的锁会在时间过去以后自动解锁。如果没有锁了或者超时了, 内核就会启动休眠的那套机制来进入休眠.PowerManage...
2018-11-09 15:30:52
582
转载 [Power]非睡眠状态功耗问题,建议同时提供正常和异常时的cputime信息
[Description] 非睡眠状态功耗大问题,一般是某个thread占用CPU过多导致的耗电,需要分别抓取正常和异常时的cpu信息 [PLATFORM] [Solution]
2018-11-09 14:54:45
226
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人