自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 Android 8.1.0 之在 Launcher 中隐藏指定应用的图标

有一些 工具应用 或者 测试应用,其实是预置到系统中的,但是肯定不能让它们在桌面( Launcher )中显示出来。所以提供 rom 的时候一般会有这种需求:隐藏指定应用图标。 这里有两个方案(无论以下哪种方案,均可以在 设置 -> 应用和通知 -> 所有应用 中查看到被隐藏的应用,解决方案): 【方案一】:在编译这个被指定的应用的时候...

2019-08-16 19:28:44 1820

原创 Android 5.1.1 修改整个系统语言

现在接到一个需求:基于Android 5.1.1 ,做一个应用,可以修改系统语言 :) 首先明确这个任务:我们作为系统提供方,需要给别人编译提供刷机使用的 rom ,与此同时,我们在 rom 中需要提供功能:别人可以调用 rom 的一个接口(或者方法),可以实现修改系统语言的效果(相当于点击了系统 Settings 中的语言进行更换一样,并且保证系统重启之后系统的...

2019-08-13 20:14:52 913

原创 Android 8.1.0 源码修改之 - 屏蔽 Home 按键

众所周知,想要屏蔽Android 的 Back 按键,很简单,像下面这样操作就可以了: @Override public boolean onKeyDown(int keyCode, KeyEvent event) { if (符合某特定条件) { if (keyCode == KeyEvent.KEYCODE_BACK &&a...

2019-07-31 20:20:39 1946

原创 Android 8.1.0 源码探究之 - 为啥给设备设置锁屏密码以后,重启设备会看到屏幕会变得比关机之前亮(解锁后亮度恢复为重启之前的亮度)

今天测试给提了一个issue:刷机 - 设置设备的锁屏密码(pattern)- 重启设备,设备重启完成之后,首先看到的当然是解锁界面,会看到解锁界面的亮度比重启之前在 Settings 中设置的亮度亮了不少(即使在系统的 Settings 中设置了系统亮度是 0 ,重启之后首先看到的解锁界面也是很亮,解锁之后,设备屏幕的亮度恢复为重启之前亮度)。测试认为这是有问题的,把这个问题扔了...

2019-07-24 23:19:29 809

原创 Android Studio 坑爹问题集锦(持续更新 update on 15/7/19)

问题一:报错:Error:No such property: GradleVersion for class: JetGradlePlugin出现问题时,一般是打开别人的AS 工程的时候出错,问题原因是根目录下gradle/wrapper/gradle-wrapper.properties中:distributionUrl=https\://services.gradle.org/d...

2019-07-15 16:56:36 419

原创 浅谈 Android Tombstone(墓碑日志)分析步骤 - 02

找到首个方法位置后,再看,这个链其实不长,而且墓碑日志记录很清晰,是 /vendor/bin/hw/[email protected] 发生了问题,因此接下来直接找链中最后一个方法调用,也就是 #00。结合 logd 日志,墓碑日志记录于 2023-06-19 23:47:31,logd 中最旧的日志记录的最早时间是 06-20 14:12:02.454747,所以前置操作日志已经被覆盖冲掉,无法参考 logd 日志分析问题。

2023-06-30 19:15:22 1218

原创 浅谈 Android Tombstone(墓碑日志)分析步骤

之所以称之为浅谈,也的确是实事求是了,因为一顿操作下来,即使找到了日志报错的位置,我好像还是解决不了问题,不得其道。这只是代码调用链中,位于链首的一个方法,不代表问题就是出在这里。按常理,这个时候我们需要使用上面的命令,将 #14 到 #00 整个调用链都完善出来,观察调用链中的层层调用,看看问题出在哪里,再确定一下这是不是一个值得关注的问题,以及这是一个什么问题,怎么解决这个问题。首先,要学会站在巨人的肩膀上处理问题,先看看别人都怎么处理的,对处理步骤有个脸熟,再上手操作,所谓先知道,再做到,再熟练。

2023-06-30 16:23:42 1335

转载 Android.mk集成第三方jar与so的方法

参考:https://blog.csdn.net/wonderful_eastar/article/details/48441761?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.no

2020-07-02 17:27:07 287

原创 Android SDK 开发 - sdk 中依赖第三方jar 包的情况

SDK 开发的时候遇到了这么一种场景: 视频通话 SDK 的核心 jar 包由第三方公司提供,我们团队在这个 jar 包的基础上包装一层,我们团队会把包装后的 SDK 提供给其他公司的第三方开发人员,供他们开发视频通话功能。在这个场景下,前提: 假设视频通话核心 jar 包名字是 a.jar ; 我们的工程中有三个库模块:分别是库模块 b 、库模块 ...

2020-01-14 15:39:56 1181

原创 Android 项目实战之 - 快速搭建项目框架 (四) MVVM 框架模型

搭建MVVM 框架模型前,得知道几个Google 的原生组件: DataBinding 、ViewModel 和 LiveData 分别是什么,解决了什么问题,怎么使用这几个组件。 首先关于DataBinding 的使用,根据 慕课网 和 博客 DataBinding使用全面详解 ,总结了这个样例: 然后关于组件 ViewModel 和 ...

2019-12-18 10:57:38 424 1

原创 Android 项目实战之 - 快速搭建项目框架 (三) MVP 框架模型

MVP 框架模型以上是 MVP 框架模型。

2019-12-18 10:56:58 294 1

原创 Android 项目实战之 - 快速搭建项目框架 (二) MVC 框架模型

MVC 框架模型以上是MVC 框架模型。

2019-12-18 10:51:34 423 1

原创 Android 项目实战之 - 快速搭建项目框架 (一) 概述

一般我们很少自己去搭建项目(包括普通应用 和 SDK)基础框架,都是接过项目之后去维护已有的工程代码 - 可以正常跑起来并根据新需求添加新的功能。但是如果一旦新开启了一个项目,那基础的框架之类的还是需要我们自己去搭建实现。现在在这里基于实践,把遇到的好的基础框架记录下来。【1】基于实战,在搭建 APP 框架的时候,通用架构框架:(1)MVC 框架模型。(MVC)(2)M...

2019-12-16 14:44:31 456 1

原创 Android 8.1.0 系统应用开发之 - 修改 Settings 中 存储空间相关

Android 8.1.0 原生系统,Settings 中,点击 “存储” 查看内存使用时,发现内存使用情况都是使用 GB 做的单位,但是如果某一类型文件实在是太小了,比如照片和视频中只有100KB 左右大小,如果还是使用 GB 作为计算格式的话,那最终显示出来的就只是0GB 了,这样不方便用户对自己内存空间有详细的了解,如下:修改前所以,我们优化一下当前界...

2019-11-05 17:38:23 1682

原创 Android 开发实用工具类:删除指定目录下指定格式文件(计算指定目录下指定格式文件总大小)

开发的时候我们可能会遇到一些需求:遍历删除指定目录下的指定格式的文件。 这里提供一个工具类,其对外暴露三个参数,参数一:要删除的文件目录的路径,参数二:区分是前缀还是后缀,参数三:具体前缀或者后缀字符规则。删除的时候,先枚举出路径目录下的所有文件,枚举的同时实现一个FilenameFilter接口的类,可以自定义规则,比说前缀、后缀或者其他规则,枚举的同时将我们的...

2019-10-24 18:35:40 319

原创 Android 8.1.0 源码修改之 - 屏蔽 Camera2 应用中的录像按钮

这个需求说起来挺奇葩,为什么这么讲,因为Camera2本来就是用来拍照录像,就只因为当前系统预置应用 Camera2 在录像的时候,很容易出现各种奇怪问题,还不好定位并解决,然后产品说:把Camera2 里面的录像功能给屏蔽了吧。胳膊拧不过大腿,改吧。 需要修改folder\packages\apps\Camera2\src\com\android\came...

2019-10-18 17:38:25 873

原创 Android 任意位置(指空间上的位置)弹出 Toast

今天在学习同事写的代码的时候,发现一个很有意思的东西,可以在Android 设备的任意位置(指的是空间上的任意位置)弹出来 Toast。 首先在layout 目录下新建一个布局文件 custom_toast.xml,里面按照下面写:<?xml version="1.0" encoding="utf-8"?><LinearLayout ...

2019-10-16 18:54:01 618

原创 Android 中检查是否被授予相应的权限

1.声明所需要的权限:private final static int PERMISSIONS_OK = 10001; private static String[] PERMISSIONS_STORAGE = { "android.permission.READ_EXTERNAL_STORAGE", "android.permissi...

2019-10-16 17:58:29 364

原创 Android 8.1.0 之在 Settings 中隐藏指定的应用信息

之所以会有这个需求,是因为之前做过在 Launcher3 中隐藏应用图标。之前虽然在 Launcher 中隐藏了应用图标,但是依次点击"设置 - 应用和通知 - 查看所有的应用" ,还是可以看到这些被隐藏掉应用图标的应用信息,所以我们还得在这里做一下过滤:在显示所有应用的时候,按照应用的包名,把需要隐藏的应用给过滤掉。主要是修改下面:apps/Settings/re...

2019-10-16 17:05:59 1012

原创 Android 8.1.0 Service 中怎么弹出 Activity

场景:在Service 中开启线程下载升级包,当下载完系统升级包,弹出新的 Activity 提示用户进行后续操作。像在Activity 中打开Activity 中一样,不需要额外操作。---最后,这是我写的简单 demo,参考一下。//地址(等有空了传上去)...

2019-10-15 18:37:06 419

原创 Android 8.1.0 判断系统当前顶部 Activity 是不是 目标 Activity

当前是基于Android 8.1.0,在不同的版本,方法有可能表现不一样。 没有足够测试机,没有进行适配。 private boolean ifTargetActivityIsTop(Context context, String targetAppPackageName, String targetAppActivityName) { ...

2019-10-15 18:17:13 918 2

原创 Android 8.1.0 Service 中怎么弹出 Dialog

场景:在Service 中开启线程下载升级包,当下载完系统升级包,弹出一个Dialog 提示用户。 注意,Android 系统版本不一样,可能会有不一样的表现。当前是基于 Android 8.1.0 的 Service 中弹 Dialog。 首先,就是要在功能清单列表中声明权限,以下两个都必须声明: <uses-permi...

2019-10-15 18:03:34 525 1

原创 Android 8.1.0 Service 中怎么弹出 Toast

本来想在一个文章里面记录一下在 Service 中弹出 Toast、Dialog、Activity (基于Android 8.1.0),最后还是决定分开单独写一下。因为看起来觉得这只是一点点的知识点,现在你如果在网络上搜索怎么在 Service 中弹出 Toast、Dialog、Activity ,能找到的博客一般都是有问题的。 首先这篇文章是根据我的理解,记...

2019-10-15 11:29:19 1294

原创 Android 8.1.0 获取当前界面中最上层的 Activity

/** * Check if target Activity is on top. * @param context * @param targetAppPackageName * @param targetAppActivityName * @return */ private boolean isTargetActi...

2019-10-14 19:27:39 1902

原创 Android 自定义View 之 - 自定义按钮(仿 Ios 按钮)

gif 图太大了,贴不上来,贴几个静态图,效果:github :https://github.com/1136066873/SwitchButton

2019-09-23 23:47:45 157

原创 Android 正则表达式验证手机号(限中国大陆三大运营商,更新日期截至 2019.9.12)

更新于 - 2019.9.12 直入正题,经过我在工信部和三大运营商官网查找,得到下面正则验证方式:public class RegexCheck { /** * 截止 12/9/19,三大网络运营商在大陆号段分配: * 移动:134,135,136,137,138,139,144,147,148,150,151,152,...

2019-09-12 18:55:19 1054

原创 Android 强制GC?

今天看 E:\folder\vendor\rockchip\xxxxx\apps\SystemUI\src\com\android\systemui\recents\RecentsActivity.java,发现: // Force a gc to attempt to clean up bitmap references more quickly (b/38258699) ...

2019-08-22 19:21:32 13597

原创 Android平台Camera开发实践指南

参考:https://juejin.im/post/5a33a5106fb9a04525782db5

2019-08-17 15:41:35 329

原创 Android 怎么实现类似于进入开发者模式的点击方式

直接借鉴开发者模式怎么实现的就可以了。如下。先声明成员变量: final static int COUNTS = 10;//点击次数 final static long DURATION = 5 * 1000;//规定有效时间 long[] mHits = new long[COUNTS];设置点击事件: app_icon.setOnClic...

2019-08-16 19:40:12 809

原创 Android 8.1.0 调试笔记 - 处理 “Duplicate finish request for ActivityRecord”

在测试工具 app 中进行某一项测试时,界面突然挂了。分析日志,发现日志中 crash 的地方是输入法?喵喵喵!? 总的来说,报错日志像下面这样://log...01-25 18:19:23.050 W/ActivityManagerService( 442): Duplicate finish request for ActivityRecord{6...

2019-08-08 18:29:30 1962

原创 Android 反射 - 通过 java 反射获取应用进程 Application 的实例化对象

反射 - 平时没使用过,但是最近在复习(划掉,学习) framework 东西的时候,发现应用进程 Application 在被实例化的时候,最终是在 Instrumentation.java 中调用如下方法去实例化(Android 8.1.0): /** * Perform instantiation of the process's {@link Ap...

2019-08-07 19:52:52 1266

原创 Android 面试知识点之 - 谈谈你对 Context 的理解(3-5)

基于 Android 8.1.0首先,Context 这个抽象类在源码的路径是:folder\XX\frameworks\base\core\java\android\content\Context.java可在线阅读源码:http://androidxref.com/8.0.0_r4/xref/frameworks/base/core/java/android/cont...

2019-08-05 19:31:21 356

原创 Android 开发之 - 消除 Permission is only granted to system apps

添加属性节点:tools:ignore="ProtectedPermissions" 参考:https://www.jianshu.com/p/e11cdfaf15dc参考:https://blog.csdn.net/qpc908694753/article/details/77877939

2019-08-02 14:53:35 160

原创 Android 开发之 - 程序异常退出处理 CrashHandler 的使用

转载自:https://me.csdn.net/gavin_Zippo原文链接:https://blog.csdn.net/gavin_Zippo/article/details/79557959这篇文章应该是在参考《Android 开发艺术探索》写的,质量还可以。...

2019-08-02 14:40:33 498

原创 Android 8.1.0 源码修改之 - 给自己预置到系统的预置应用添加一些默认权限

因为项目中需要预置很多第三方应用,每当刷机完成之后,这些第三方应用进程只要启动,就会弹一些弹窗请求权限(比如某度输入法需要定位权限、读取联系人、访问SD卡等等权限,暂且不说他们是不是没必要请求这些权限,当系统启动起来弹一些这些东西,用户体验很不好。所以当前需要把这些权限的东西都给他们默认赋上,优化用户体验)。基于以上,我们需要在预置这些应用到系统之后,在framework对应的包中...

2019-08-02 11:22:43 2460

原创 Android 系统应用开发之 - 快速测试修改验证 Android 系统应用中的问题

此前公司组中,一直在做系统应用的开发、rom 的定制,包括不限于 Settings,Launcher3,SystemUI 等等。在开发的过程中,修改 Google 工程师写的这些应用,再正常不过了。但是在修改系统应用的时候怎么可以提高验证效率呢。 之前验证自己修改的系统应用是否成功的时候,都是整编rom,然后刷机,再测试。这个过程短则几十分钟,长则一个小时,太浪费...

2019-07-17 20:56:24 296

原创 Android 开发之 - 在源码中快速跟踪代码执行流程和方法调用顺序

今天在和底层同事在调试 bug 的时候,同事给我扔了一个代码,告诉我通过这个,可以打印出代码调用栈。测试了一下,哇,好用, 以后跟系统源码,可以使用一下了。测试过程:(红色箭头方向是方法调用流程方向)可以像下面一样使用:/*** 注意导包并设置 TAG***/import java.lang.StackTraceElement;import java.la...

2019-07-11 11:05:50 1326 2

转载 Android 开发中 Launcher3 常见默认配置修改方法总结

转载自:https://www.zhangshengrong.com/p/q0arZvy4ax/

2019-07-05 10:50:04 1023

转载 Android 中的 AccountManager getAuthToken 问题

转载自:http://ngudream.com/2016/08/30/android-getauthtoken/

2019-07-05 10:47:13 801

转载 Android Launcher 之 - 数据加载流程

转载自:http://codemx.cn/https://juejin.im/entry/57a976626be3ff00654ca790下面这个也可以作为参考转载自:https://www.jianshu.com/u/792b376c2ed4https://www.jianshu.com/p/64f03871953b...

2019-07-05 10:44:09 222

空空如也

空空如也

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

TA关注的人

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