自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

DODO~下雨不打伞

KEEP THINKING...

  • 博客(111)
  • 资源 (5)
  • 收藏
  • 关注

原创 ZeroTouch之后显示的应用

ZeroTouch之后相机没有显示原因是因为高通平台用自己的相机代替了系统默认相机。设备ZeroTouch之后,会过滤掉。需要将高通晓龙相机放入白名单。方案修改frameworks/base/core/res/res/values/required_apps_managed_device.xml将包名添加到required_apps_managed_device里面。 <string-array translatable="false" name="required_apps_

2021-05-10 10:53:33 376

原创 StatusBar log disable标志位

主要对StatusBar的disable标志位进行解读。04-06 20:50:12.210 D/StatusBar( 3200): disable1: 0x03a50000 -> 0x00000000 (diff1: 0x03a50000)04-06 20:50:12.211 D/StatusBar( 3200): disable2: 0x00000010 -> 0x00000010 (diff2: 0x00000000)04-06 20:50:12.212 D/StatusBar( 3

2021-04-12 17:20:25 436

原创 如何单独编译Android Q源码里面的应用

问题描述在面对Android系统工作时,很大一部分工作是对一些apk的bug进行修复。如何单独编译修改过的应用,快速进行验证,对提高工作效率非常重要。但是在Android Q中,很多应用都是用Android.bp代替了Android.mk。而且一些应用单独编译,也不会在指定目录生成应用的apk,而是生成dex或者odex格式。解决方法对于应用源码根目录里面包含Android.mk的情况,只需要在mk文件中添加:LOCAL_DEX_PREOPT := false对于应用源码根目录包含Android

2020-09-15 13:31:13 539

原创 Android Rescue party

什么是Rescue Party?官方解释救援程序[https://source.android.com/devices/tech/debug/rescue-party]“当该功能注意到核心系统组件陷入崩溃循环僵局时,就会派出“救援程序”。然后救援程序会通过一系列操作来上报相关情况,以期恢复设备。最后的解决方法是,救援程序使设备重新启动并进入恢复模式,然后提示用户恢复出厂设置。”实现在 Android 8.0 中,救援程序默认处于启用状态,其实现位于 /services/core/java/com/a

2020-08-20 15:18:41 425

原创 Could not resolve com.android.tools.build:gradle:3.0.1

在项目开发,使用gradle编译项目app代码的时候,碰到如下问题,辗转反侧夜不能寐,终于搞定。记录如下:出错logA problem occurred configuring root project ‘SHAKESHAKE’.Could not resolve all files for configuration ‘:classpath’.Could not resolve com....

2019-10-22 15:39:21 725

原创 Java如何识别String中的换行符(\n)

问题背景:在一个EditText里面输入\n,在获取的String中直接获取的是“\n”这两个字符,而非作为一个回车。解决:String result = editextString.replaceAll("\\\\n", "\n")参考:https://www.javaworld.com/article/3188545/learn-java/java-101-regular-expr...

2018-12-04 13:49:31 40103 2

原创 Android:回车保存到SharePreference异常

背景在项目中发现,当通过SharePreference保存一个回车。如果重新安装应用,这个回车读出来的值就改变了。分析通过读取保存时候的EditText里面的String值,通过toCharArray转换成char数组,打印每个数组的ascii码。发现输出是10,10.也就是回车对应的ascii码。重新安装应用,从SharePreference里面读取保存的回车值,再次打印char数组,发...

2018-11-23 14:59:22 287

原创 android O如何获取当前锁屏状态

以下代码在Android O验证可行。主要作用:获取当前是否处于锁屏状态。主要是调用KeyguardManager里面的接口,同样可以使用其他接口判断当前是否是安全锁屏等。import android.app.KeyguardManager;KeyguardManager keyguardManager = (KeyguardManager) context.getSystemServi...

2018-11-07 14:31:55 1533

原创 常用adb命令(不定时更新)

通过adb命令获取Settings provider里面的值,比如adb shell settings get system pointer_speed对应获取的是Settings.System.POINTER_SPEED这个值。adb shell settings set system pointer_speed 1对应的是设置该值。同样对于Settings.java里面的G...

2018-07-05 11:14:27 1057

原创 修改Android灭屏时间

有些项目要求减少灭屏时间。方法如下: 修改DisplayPowerController.java文件中做如下修改:switch (mPowerRequest.policy) { case DisplayPowerRequest.POLICY_OFF: state = Display.STATE_OFF; performScreenOffTransiti...

2018-07-04 17:14:21 2996

原创 RecyclerView报错:Scrapped or attached views may not be recycled

背景RecyclerView由于需要处理大量数据,它的ViewHolder经常会复用,在性能提高的同时也有可能导致某些View的状态异常,导致JE问题。log:java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false isAttached:tru

2018-01-23 11:44:33 961

原创 Android 5.0 and later only support position-independent executables

在参考Android利用tcpdump和wireshark抓取网络数据包使用tcpdump的时候,会提示如下信息:λ adb shell /data/local/tcpdump"/data/local/tcpdump": error: Android 5.0 and later only support position-independent executables (-fPIE).

2018-01-23 11:39:16 2889

原创 Android 5.0 and later only support position-independent executables

在参考Android利用tcpdump和wireshark抓取网络数据包使用tcpdump的时候,会提示如下信息:λ adb shell /data/local/tcpdump"/data/local/tcpdump": error: Android 5.0 and later only support position-independent executables (-fPIE).

2018-01-04 13:57:37 6042

原创 Android O之通知

Android O上的通知相关更新带有横线的选项表示有二级菜单点击横线上端的图标表示开关改功能,点击横线下面的文字表示打开二级菜单。更加紧凑直观的操作方式。应用通知权限更改 需要应用支持,对于应用发送的不同类型的通知进行管理,以净化与用户交互的方式和减少能耗。 同时也支持通过后台限制应用的推送功能来延长设备续航。 参考自Android O预览版上手:请给安卓厂商一个升级的理由Notificat

2017-07-12 01:01:55 1391

原创 重构自己

以前很喜欢看<杀手47>这部电影,电影情节比较简单,看得时候可能找到影视与现实的共鸣点了,所以比较喜欢。主角冷血到麻木,爆发到狰狞。在面对一群被制造出来的杀手时,说了一句台词“How about die with a little dignity”。对于一个创造出来的杀人产品,似乎从这句话里面找到了他人生的除他职业以外的其他意义。其实我们每个人或多或少都会现实的自己不太满意,自我认同感薄弱,但是现实

2017-01-09 23:10:59 694

原创 Python十日谈:第一日-标准类型

Python初学

2017-01-09 22:57:21 522

原创 SwitchPreference响应点击事件

问题背景需要响应SwitchPreference(CheckBoxPreference的升级版)的点击事件,但是在点击之后,checkbox先变化,然后再弹出我们需要的流程。这个显然跟用户体验有出入了。 用户一般假设,当我们设置完毕之后,这个checkbox状态才会改变。初始方案在onPreferenceClick里面对点击的Preference的key进行判断,并进入我们弹出的新流程。这个会产生

2016-12-02 23:05:14 8935 1

原创 当我们谈Android编译系统的时候,我们在干吗?

本文的目的是用比较容易理解的方式,介绍一下整个Android项目的编译。至少知道大概的编译流程是怎么样的,项目里面的Android.mk文件包含些什么内容。makefile的作用makefile文件用来描述文件之间的依赖关系,并描述文件的编译规则。我们知道从源代码到可执行程序,中间要经历编译生成中间文件(windows里面的obj文件,Linux里面的.o文件),链接这些中间文件生成可执行文件的过程

2016-09-07 15:55:58 1471 1

原创 Android 6.0中SELinux的TE简介

在开发中,偶尔会碰到一些TE后缀的文件的修改和查看。google借鉴了SELinux安全机制,在Android内包含了该机制,而TE是SELinux中描述程序访问资源的语言。本文的目的是让大家在Android开发中,碰到相关问题时能够看懂相关的TE文件。在下面的内容中将描述SELinux基本的TE编写规则和在Android中的应用。SELinux资源访问基本概念SELinux使用类型强制来改进强制

2016-09-07 11:06:29 8985 5

原创 摘自 寂地《踮脚张望的时光》

每当面对现状,焦虑,急躁,无可名状的时候,看看下面的文字就会平复很多。我一直认为人生的道理是很简单的,每个人都知道,但是并不是每个人都能够接受。现实和理想的差距折磨人心,唯有脚踏现实,追逐理想。 总有一天你将破蛹而出,成长得比人们期待的还要美丽。 但这个过程会很痛,会很辛苦,有时候还会觉得灰心。 面对着汹涌而来的现实,觉得自己渺小无力。 但这,也是生命的一部分。做好现在你能做的

2016-08-23 16:52:44 557

原创 Android Studio中调试Android源码

如果Android程序员想往更高一级发展,对Android系统的了解深入程度决定了你以后的终点。所以对于系统源码的了解可谓事半功倍。如果我们死扛源代码,会浪费很多时间在判断代码走哪个分支上面,对于一些多层嵌套的代码,基本上到后面就忘记前面到底走哪个分支了。如果能够实时看到程序的流程,那么对于我们理解的吃透代码就非常有价值了。本文将从代码下载,编译,生成AS项目文件,导入和调试入手,让读者可以从无到有

2016-08-04 11:59:02 6892 5

原创 Android6.0来电号码电话薄名称匹配

本文将介绍系统接收到来电之后,如何在电话薄中进行匹配联系人的流程。分析将从另外一篇文章(基于Android6.0的RIL框架层模块分析)中提到的与本文内容相关的代码开始。//packages/service/***/Call.javapublic void handleCreateConnectionSuccess( CallIdMapper idMapper, Par

2016-07-20 17:54:50 4061 1

原创 Android6.0中的Handler消息模型

在Android应用开发和系统功能开发中,经常用到多线程,而Handler消息模型在线程间的消息传递机制中占有重要的地位。对于Handler的理解,最好的参考资料是Android Developer上面的Handler介绍。 通过一个Handler,可以允许我们发送和处理一个Thread中的消息队列(MessageQueue)中的消息(Message)。Handler有两种主要的用法:将M

2016-07-19 12:08:42 1126

原创 Android 6.0拨号界面号码格式化

需求及分析客户需求: 使用hierarchyviewer工具可以发现这个界面对应的activity是DialtactsActivity.通过搜索拨号盘的source id(dialpad_view)找到dialpad_fragment.xml,从而找到DialpadFragment.java。最后在Dialpad_view.xml里面自定义了一个EditText类来容纳拨号的内容:<view

2016-07-14 14:12:39 3880

原创 Android 6.0拨号界面响应工程码流程

背景最近看到一个需要在拨号界面输入工程码,弹出指定界面的功能。类似输入”*#06#”弹出手机IMEI号,当然根据具体需求可以弹出隐藏在手机里面不针对终端用户使用的功能。下面就具体分析一下该功能的流程。具体分析在6.0中,拨号界面的显示和响应逻辑在DialpadFragment中。这个界面有一个TextEdit对象mDigits,里面容纳我们拨号的时候,输入的号码。这个界面在初始化这个mDigits的

2016-07-13 13:44:03 2513

原创 基于Android6.0的RIL框架层模块分析

本文与另外一篇分析RIL底层模块的文章是姐妹篇: 基于Android6.0的RIL底层模块分析 根据手机网络制式的不同,通常系统中会扩展Phone.java这个类,扩展成GSMPhone和CDMAPhone。这个类主要是抽象整个手机来处理通信过程中与其他模块的交互。我们以GSMPhone为例,分析来电流程如何从底层传递到上层。该分析主要基于代码,所以会比较啰嗦。以GSMPhone为例,在Phone

2016-06-22 10:45:58 6544

原创 Android RIL框架层相关模块类简介

InCallService里面有一个InCallServiceBinder extends IInCallService.Stub,在onBind中会返回这个内部类的实例。里面有一个mPhone实例,InCallService里面的一些设置,如下,都是对这个mPhone相关函数的包装。 同时这个InCallService里面还有一个空函数,是由继承它的子类来实现,比如InCallServiceIm

2016-06-21 17:49:00 1822

原创 grep命令集合

本文并不会对整个grep命令集合进行介绍,而只是积累博主用过或者常用的一些,并不全面。如何递归查找项目目录下的某个字符cd target-dir #这个target-dir就是你想查找的目标目录 grep -nr “TelecomSystem” *

2016-06-17 09:20:15 556

原创 基于Android6.0的RIL底层模块分析

看代码的时候不要看到细节里面,先构建模块的运行框架,后续有需要再深入细节。必要的时候需要拿一个本子将主要流程画出来或者写出来。我们先看看,从系统刚开机是如何启动RIL功能的。首先先查看一下init.rc(这个文件包含一些初始化的服务或者功能,在开机阶段占有很重要的地位)。service ril-daemon /system/bin/rild class main socket ri

2016-06-14 12:39:42 2405

转载 Android Binder设计与实现 - 设计篇

关键词摘要引言面向对象的Binder IPCBinder 通信模型1 Binder 驱动2 ServiceManager 与实名Binder3 Client 获得实名Binder的引用4 匿名 BinderBinder 协议1 BINDER_WRITE_READ 之写操作2 BINDER_WRITE_READ 从Binder读出数据3 struct binder_transa

2016-06-03 15:20:56 508

原创 Android studio-app:zipalignDebug FAILED

现象解决现象在Ubuntu下面,在使用Android studio编译一个简单的demo程序的时候,报错信息如下::app:zipalignDebug FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':app:zipalignDebug'.> A problem

2016-06-01 13:38:56 1734

原创 修改WIFI热点的默认名称

需要将WIFI热点定制化为AMAZON-XXXX的形式(厂商名-XXXX)。在我的奇酷手机上,看到已经是这样实现的,看来还是有需求的。基于当前的高通平台Android 5.1实现。下面会详细的一步一步说明如何查找到相关的地方,并进行修改。对于Android平台比较熟悉的朋友可能有点啰嗦,请直接看文章最后一部分文字。对于初次接触或者接触不久的朋友,可以耐心一点看完。全局搜索高通的890

2016-05-19 17:23:30 8994

翻译 container_of()详解

​原地址:http://radek.io/2012/11/10/magical-container_of-macro/当你开始内核编程的时候,你会随便看看代码,那么你可能很快就会碰到这个神奇的预处理代码结构。它是用来干嘛的?正如它的名称那样,它获取的是它的容器的地址。该函数需要三个变量--指针,容器的类型,指向成员的指针。(译者注:最终返回的是,该成员所处的结构体的指针。知道成员的指针

2015-08-12 15:47:58 4648 1

原创 给三方应用进行系统签名

问题:在安装一个三方应用的时候出现:Failure [INSTALL_PARSE_FAILED_NO_CERTIFICATES]网上查询是签名问题。所以需要用系统签名对这些apk文件进行签名。步骤如下:准备文件列表:文件名项目中的位置signapk.jarLINUX/android/out/host/linux-x86/fra

2015-06-02 16:34:28 779

原创 如何使用程序代码设定偏好应用

quote:基于代码Android 4.4项目开发中遇到一个需求,在系统有多个桌面应用的情况下,开机启动指定的桌面。这个跟我们平常有多个桌面时,一般会弹出框让我们选择偏好桌面。这篇文章中,我们将来看看如何在程序代码中设定某个应用为偏好桌面。如何找到系统中所有的桌面应用程序private PackageManager mPackageManager;privat

2015-05-29 11:55:00 790

原创 AndroidStudio一步到位

最近转AndroidStudio(下文简称为AS),由于总所周知又难以理解的原因,导致国内用户需要科学上网才能进行升级,但是大部分人没有那么多精力,所以经过折腾之后,找到了一个简单的方法安装AS。在AndroidStudio中文社区下载AS以及AndroidSDK一体包(1.0版本的一体包有800MB)。下载安装(建议找个空闲空间在2G以上的盘进行安装),安装完毕包括了AS以及最新的A

2015-04-04 07:28:55 972

原创 MTK编译环境中makefile文件中常用变量值

问题在开发中碰到一个需要编译时拷贝文件到out指定目录中的问题。在不了解编译系统中一些路径对应的变量值非常不方便。所以花了一点时间查找到了部分变量名以及对应的值。方法如果大家没有找到对应的变量名的值,可以尝试如下方法:选择一个模块的android.mk文件,在里面添加:$(warning "TARGET_EXTRA_DATA_PATH is $(TARGET_EXTRA

2015-03-12 19:21:34 2255

原创 如何让sublime text 2/3支持中文编码

由于每个编辑器默认编码格式不一样,所以大致在一些编辑器中编辑的代码注释在另外一些编辑器中出现乱码。在sourceinsight里面编辑的中文在sublime text3中出现乱码,所以上网找了一下解决方法。       问题的原因是sublime text默认使用UTF8打开文件,所以导致GBK编码格式的中文出现乱码,只需要sublime text将文件以GBK打开即可。

2015-02-03 09:24:26 14552

转载 SQLServer中的通配符和转义字符

通配符SQL中的通配符用来代替一个或者多个字符。SQL通配符与LIKE运算符一起使用。SQL Server中常用的通配符%匹配任意长度的(长度可以为0)字符如’m%n’匹配字符m和n之间有任意个字符的字符串,匹配的示例有man,min,mon,moon,..._匹配任意单个字符如’m_n’匹配字符m和n之间含有任意一个字符的字

2015-01-06 10:23:29 17143

原创 如何使用Python获取某个路径下面所有文件的绝对路径以及其他操作

问题背景:    最近在用

2014-10-04 23:42:35 20082

OpenGL编程指南(第四版)(中文版).pdf

OpenGL编程指南(第四版)(中文版).pdf。游戏开发必备用书。

2013-08-13

Android图标设计规范-v2.0

Android图标设计规范-v2.0。指导如何进行Android应用图标的设计。

2013-08-13

BitComet_0.88_diy

绿色版的BitComet,去处原版多余的广告,还你一个简介的下载界面。

2007-08-26

空空如也

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

TA关注的人

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