自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

csdnxialei的博客

Either you run the day, or the day runs you !

  • 博客(45)
  • 收藏
  • 关注

原创 个人笔记

1.SimpleDateFormat格式yyyy:年MM:月dd:日E:星期几D:一年中的第几天F:一月中的第几个星期(会把这个月总共过的天数除以7)w:一年中的第几个星期W:一月中的第几星期(会根据实际情况来算)hh:1~12小时制(1-12)HH:24小时制(0-23)a:上下午标识mm:分ss:秒SS:毫秒k:表示一天24小时制(1-24)。K:表示一天12...

2019-07-29 12:07:15 8256

原创 Android 开机权限默认授予Runtime权限

背景:这几天在处理关于工厂测试app的授权问题,按照之前的把权限添加到权限白名单方式,使用app时,依然会发现无法打开录音,照相机等功能,去setting查看app权限管理,发现这些权限没有授予。现在问题解决了首先,前面我写了这个博客,Android 开机权限白名单默认授予系统app权限, 里面提到默认授权时private void restorePermissionState(@NonNull AndroidPackage pkg, boolean replace, @Nullabl

2022-04-13 16:19:56 3548 1

原创 Ubuntu 挂载网络硬盘

需求:在虚拟机下想要直接访问公司服务器硬盘。如果没有安装cifs 包就先安装sudo apt-get install cifs* 挂载网络路径到指定路径sudo mount -t cifs //192.168.1.12/xxx share/ -o username=xxx,password=xxx创建软链接指向挂载路径ln -s share/ newpath...

2022-03-24 10:16:30 5094

原创 服务器系统编译出现 ‘#‘ must be first item on line

编译系统莫名其妙出现这个错误,就算git status什么都没有,退出终端也无法编译,真的是狗血!

2022-03-24 09:15:32 726

原创 Android 开启关闭屏幕固定功能

说明:屏幕固定是android自带的功能,在需要固定显示app,不允许切换其他app的时候使用。业务需求:程序升级过程中,禁止退出后台界面。android版本:android 11AndroidManifest.xml需要声明权限<uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" />检查运行时权限int granted = checkSelfPermission("andro

2022-03-22 16:02:47 4748

原创 Android 开机权限白名单默认授予系统app权限

之前不明白为什么权限白名单不生效,现在通过分析系统加载流程,得到了答案

2022-03-10 14:15:25 6512 2

原创 Android 11 无法remount问题

问题描述: 在Android 11开发的时候,想快速调试把单独编译好的模块push 到 /system 目录下,结果发现remount failedC:>adb rootrestarting adbd as rootC:>adb remountSkipping /system for remountSkipping /vendor for remountSkipping /product for remountNo partitions to remountremount fa

2021-05-20 14:47:34 13508 7

原创 Android Dialer源码分析之去电流程

Android Dialer之MMIcode与SS

2021-01-30 16:05:20 852

原创 Android Launcher如何选择默认layoutId?

思考: 接上一篇,在Launcher初始化默认桌面widget的时候,需要选择默认defaultLayoutId,接下来需要弄清楚,默认layout是怎么来的。前面分析过,defaultLayoutId来自InvariantDeviceProfile的初始化过程InvariantDeviceProfile.java private InvariantDeviceProfile(Context context) { String gridName = getCurrentGrid

2021-01-30 11:01:25 609

原创 Android Launcher 默认widget信息如何加载到数据库里的?

Launcher加载默认Profile默认appwidget存入数据库里的流程#mermaid-svg-QsQzHkJ16eDtFJHF .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-QsQzHkJ16eDtFJHF .label text{fill:#333}#mermaid-svg-QsQzHkJ1

2021-01-29 16:50:32 244

原创 Android Launcher加载widget 等view的流程

1. Launcher加载app,shortcut,widget主流程#mermaid-svg-e7lNxvzJqV553Beu .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-e7lNxvzJqV553Beu .label text{fill:#333}#mermaid-svg-e7lNxvzJqV553Be

2021-01-25 17:59:55 1108

原创 Ubuntu 修改默认终端大小

先调整好终端窗口的大小输入xwininfo ,选择终端窗口,出现窗口大小信息编辑配置文件sudo vim /usr/share/applications/gnome-terminal.desktop把前面显示的窗口信息最后一行内容添加到 Exec后面,即默认初始化窗口大小。重启终端。...

2019-12-17 10:45:20 3143

原创 Android 查询通话记录,查询联系人,查询短信

文章目录ContentProvider和ContentResolver介绍查询通话记录查询联系人查询短信与彩信总结ContentProvider和ContentResolver介绍ContentProvider 是Android的四大组件之一,提供数据的跨应用程序访问。从ContentProvider源码看,ContentProvider是抽象类,包含6个抽象方法public abstra...

2019-10-21 10:03:40 1058

原创 Android 关于Preference相关类的分析

系统里设置Settings app 里面是用Preference来做的,这些在其他app里也有涉及,比如dialer的设置部分,关于Preference这里涉及到一些类,以后会常用碰到的,做一个笔记记录和分析一下。Activity :PreferenceActivityFragment :PreferenceFragmentPreference :Preference 多个子类Switc...

2019-08-12 16:23:02 2077

原创 Android Dialer源码分析之通话中主动显示IncallActivity

描述:当手机已经在通话中的时候,界面回到桌面,再打开Dialer app的时候,手机就会提示并让你确认到底你是想打开已经在通话的界面还是不管正在通话中的电话而重新拨打新的通话。假如此刻你想打开正在通话的界面,这时候就不是简单的startActivity了,IncallActivity是只有有通话才能显示出来的,而且通话中的那些状态信息,也不是startactivity能搞定的。当Dialtac...

2019-07-30 14:57:36 1333

原创 Android Dialer源码分析之IncallUI中SpeakerButton点击后显示音频选择器

Android Dialer源码分析之list列表呈现

2019-07-18 18:01:09 989

原创 Android AnimationDrawable动画实现icon闪烁

Android AnimationDrawable动画实现icon闪烁

2019-07-17 17:19:09 1293

原创 Android SystemUI分析之状态栏字体和图标颜色随背景而改变

Android版本: 8.1

2019-07-08 16:37:24 4840 1

原创 Android Dialer源码分析之通话来电UI显示

Android Dialer源码分析之通话界面UI控制流程

2019-07-04 21:52:16 1640

原创 Android Dialer源码分析之拨号主界面ListsFragment

Android Dialer源码分析之拨号

2019-06-27 20:38:39 1084

原创 Android 在Framework默认授予launcher runtime权限

Android版本: 8.1问题描述: 要在launcher显示通话记录calllog 和未读短信等内容,涉及运行时权限,导致必须申请运行时权限,这样就会弹窗提示,客户的需求当然是不许弹窗咯,第一次开机就要默认授权。一,privapp-permissions-mediatek.xml无效了记得以前做这种权限问题,都是直接在privapp-permissions权限白名单里加上对应权限,但是...

2019-06-25 18:20:33 1874

原创 Android 系统app集成Bugly收集错误

Android版本:8.1需求:在系统app里集成bugly,收集错误信息。一丶在makefile里加入bugly的SDK把从bugly下载的jar包放入本地app的lib目录下LOCAL_STATIC_JAVA_LIBRARIES := buglyLOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := bugly:lib/bugly_crash_releas...

2019-05-27 15:08:51 1015

原创 Android 记录Framework中发现的单例模式抽象类

Framework发现了野生单例模式抽象类,特别在此记录一下~frameworks\base\core\java\android\util\Singleton.javapublic abstract class Singleton<T> { private T mInstance; protected abstract T create(); publi...

2019-05-15 14:54:14 175

原创 Android 使用本地服务与使用远程服务

使用本地服务一丶定义java接口public interface CalculateI { int addab(int a, int b);}二丶创建一个Binder子类,继承Binder并实现接口方法public class CalculateBinder extends Binder implements CalculateI{ @Override public int...

2019-04-17 17:49:54 1595

原创 Android 用反射获取隐藏的WindowManagerService

系统里的WindowManagerService是被标记为hide的服务/** {@hide} */public class WindowManagerService extends IWindowManager.Stub这就导致我们在导入WindowManagerService的时候会报错,提示找不到class而且想直接用context.getSystemService也会得不到对象。...

2019-04-03 17:21:16 5705 2

原创 Android MonkeyRunner自动测试笔记

环境准备:windows版本:win10IDE工具:AndroidStudio环境准备:打开androidstudio里面的SDKmanager,下载最新的sdk-tools找到对应的SDK目录在bin目录里有自带的monkeyrunner.bat脚本文件但是这个脚本里面的环境配置是有问题的,这是因为,在SDK目录里找不到对应的包路径用编辑器更改:set framewor...

2019-03-13 09:55:06 382

原创 Android 更换开机logo和开机动画

Android版本:8.1开机logo的替换开机logo有kernel logo和uboot logo两个如何找到对应的图片?确认当前项目的设备使用的是哪种尺寸的logo一般在对应项目的ProjectConfig.mk文件里可以找到例如:BOOT_LOGO = hd720找到vendor\mediatek\proprietary\bootable\bootloader\l...

2019-02-16 17:59:23 11511

原创 Android 信号栏SignalClusterView显示与更新流程

信号栏SignalClusterView的显示与修改上一篇博客写了关于显示SignalClusterView的流程。https://blog.csdn.net/csdnxialei/article/details/86570013这一篇写关于SignalClusterView如何在控制和显示着信号相关信息。SignalClusterView实现了多个接口。public class S...

2019-01-21 11:56:58 2034

原创 Android 状态栏Statusbar的启动与显示信号栏的过程

启动Statusbar并显示信号栏图标的过程Systemserver在启动系统服务的时候启动了Systemui。try { startSystemUi(context, windowManagerF);} catch (Throwable e) { reportWtf(&amp;quot;starting System UI&amp;quot;, e);}static final void startSy...

2019-01-21 10:29:42 2601

原创 Android 8.1 Settings源码解析

前言:客制化开发的过程中接触Setting次数挺多的,但是在接触的过程中发现Setting和其他应用的逻辑很不一样,Setting到底是怎么在实现逻辑的,这个问题一直环绕着在我心里,趁现在有时间,决定写个博客记录一下,温故而知新。从启动开始说起进入setting的AndroidManifest.xml里看一看,找启动Activity&amp;amp;amp;amp;lt;activity-alias android:na...

2019-01-19 17:57:53 5482 6

原创 Android 更换系统主题app

项目需求:编写主题app,一键切换桌面app图标和系统壁纸。Android版本:8.1老大给的需求是写一个系统主题app,实现类似于华为手机内置系统主题app的功能,原生android是没有主题app的,网上都是app换肤框架,是给自己单独的app换主题,百般无奈只能自己动手写了。还好我们是在源码基础上开发,可以任性的自定义功能。步骤1:先找到Launcher加载各种app的地方a....

2019-01-08 10:42:27 4549 3

原创 Android 笔记:Duplicate finish request for ActivityRecord

之前写代码的时候没注意,在Activity的finish方法里调用了别的方法,后来又在那个方法里调用了finish,然后奇怪的现象出现了,app打不开,卡死,后来才发现,log里无限出现了Duplicate finish request for ActivityRecord,而且不是error形式出现,时间多一点就会出现ANR,所以这么写是会卡死的 @Override publi...

2018-12-07 14:15:48 3302

原创 Android Handler知多少

Android版本:8.1我们知道MainActivity里面是不能做耗时操作的,几秒钟就会导致ANR,Application Not Responding应用无响应报错。于是我们会把耗时操作代码放在异步任务里AsyncTask,比如用异步任务从网上下载一个图片。下载完了我们就需要显示图片到Imageview上,而如果我们直接用imageview去更新图片,就会报错,提示你非主线程无法直...

2018-11-22 16:25:38 145

原创 Android Notification从notify到添加view的处理流程

Android版本:8.1创建Notification是很容易的,android8.0以后开始加入通知渠道NotificationChannel,然后在构造NotificationCompat.Builder的时候,指定要发送的渠道,最后调用NotificationManager.notify(id,notification)发送通知。 public void notify(int i...

2018-11-20 16:38:40 1826

原创 Android Mms发送流程

mSendButtonSms = (ImageButton) findViewById(R.id.send_button_sms);mSendButtonSms.setOnClickListener(this);--- @Override public void onClick(View v) { if (v == mSendButtonSms || v == mS...

2018-11-06 14:58:08 519

原创 Android桌面小控件appwidget的故事Ⅰ

Android版本:8.1appwidget桌面小控件是以广播接收器的方式,通过远程调用view,实现app在桌面显示view的控件。APP要实现小控件功能,需要实现一下步骤:第一步:新建一个类继承AppWidgetProvider,然后实现其中的方法,onEnabled,onReceive,onUpdate,onDeleted,onDisabled,。。第二步:在app的Android...

2018-11-05 21:32:10 1335

原创 Android 状态栏下拉列表添加自定义item开关

需求描述:客户需要在状态栏下拉列表里添加旋转屏幕开关按钮 Android版本:android8.1这是一个长故事:public class StatusBar extends SystemUI //Statusbar是继承自SystemUI的StatusBar是个很大很大的类,里面加载了太多的对象了,在StatusBar开始的时候执行了start()方法 @Ove...

2018-09-11 18:25:17 3273

原创 Android Camera默认属性设置

需求说明:系统自带Camera需要修改默认图片预览比例以及录像比例。android版本:8.1Camera的启动activity是CameraActivity.java在启动之后在oncreate里开启了许多初始化相关的代码。 @Override public void onCreate(Bundle icicle) { super.onCreat...

2018-09-11 16:10:06 4116

原创 Android 实现KeyguardView 锁屏界面横屏显示

问题描述:设备要横屏显示所有界面,但是Keyguard锁屏界面没有横屏显示,前提条件是设备没有Gsensor重力感应。android版本:8.1解决过程:从其他资料里学习和查看了keyguard的流程,找到了控制绘制方向的地方,问题随之解决。系统在启动只会加载很多服务,SystemServer是所有服务的管家,他控制了系统服务的启动,在一切准备结束的时候,会调用各个服务的回调syste...

2018-08-17 11:11:20 2885 1

原创 Android Edittext如何将信息传递给输入法inputmethod的流程

问题描述:在message输入信息的时候,会弹框进入到全屏输入法界面,这个时候需要在输入法界面显示当前message剩余短信字数和总计数信息android版本:8.1在短信输入界面输入字符的时候的edittext,根据视图查找到这个view是ComposeMessageActivity.java的mTextEditormTextEditor = (EnhanceEditText) findView...

2018-07-14 18:48:12 2253

空空如也

空空如也

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

TA关注的人

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