自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

MTK AE解析工具

MTK AE解析工具

2018-10-12

Android内存填充apk

Android填充内存神器,将此apk install进手机,选择需要填充的百分比就OK了

2018-10-12

空空如也

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

TA关注的人

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