- 博客(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 10606
原创 Android 开机权限默认授予Runtime权限
背景:这几天在处理关于工厂测试app的授权问题,按照之前的把权限添加到权限白名单方式,使用app时,依然会发现无法打开录音,照相机等功能,去setting查看app权限管理,发现这些权限没有授予。现在问题解决了首先,前面我写了这个博客,Android 开机权限白名单默认授予系统app权限, 里面提到默认授权时private void restorePermissionState(@NonNull AndroidPackage pkg, boolean replace, @Nullabl
2022-04-13 16:19:56 3787 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 5399
原创 服务器系统编译出现 ‘#‘ must be first item on line
编译系统莫名其妙出现这个错误,就算git status什么都没有,退出终端也无法编译,真的是狗血!
2022-03-24 09:15:32 929
原创 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 4940
原创 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 15029 7
原创 Android Launcher如何选择默认layoutId?
思考: 接上一篇,在Launcher初始化默认桌面widget的时候,需要选择默认defaultLayoutId,接下来需要弄清楚,默认layout是怎么来的。前面分析过,defaultLayoutId来自InvariantDeviceProfile的初始化过程InvariantDeviceProfile.java private InvariantDeviceProfile(Context context) { String gridName = getCurrentGrid
2021-01-30 11:01:25 666
原创 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 283
原创 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 1296
原创 Ubuntu 修改默认终端大小
先调整好终端窗口的大小输入xwininfo ,选择终端窗口,出现窗口大小信息编辑配置文件sudo vim /usr/share/applications/gnome-terminal.desktop把前面显示的窗口信息最后一行内容添加到 Exec后面,即默认初始化窗口大小。重启终端。...
2019-12-17 10:45:20 3594
原创 Android 查询通话记录,查询联系人,查询短信
文章目录ContentProvider和ContentResolver介绍查询通话记录查询联系人查询短信与彩信总结ContentProvider和ContentResolver介绍ContentProvider 是Android的四大组件之一,提供数据的跨应用程序访问。从ContentProvider源码看,ContentProvider是抽象类,包含6个抽象方法public abstra...
2019-10-21 10:03:40 1139
原创 Android 关于Preference相关类的分析
系统里设置Settings app 里面是用Preference来做的,这些在其他app里也有涉及,比如dialer的设置部分,关于Preference这里涉及到一些类,以后会常用碰到的,做一个笔记记录和分析一下。Activity :PreferenceActivityFragment :PreferenceFragmentPreference :Preference 多个子类Switc...
2019-08-12 16:23:02 2193
原创 Android Dialer源码分析之通话中主动显示IncallActivity
描述:当手机已经在通话中的时候,界面回到桌面,再打开Dialer app的时候,手机就会提示并让你确认到底你是想打开已经在通话的界面还是不管正在通话中的电话而重新拨打新的通话。假如此刻你想打开正在通话的界面,这时候就不是简单的startActivity了,IncallActivity是只有有通话才能显示出来的,而且通话中的那些状态信息,也不是startactivity能搞定的。当Dialtac...
2019-07-30 14:57:36 1452
原创 Android Dialer源码分析之IncallUI中SpeakerButton点击后显示音频选择器
Android Dialer源码分析之list列表呈现
2019-07-18 18:01:09 1079
原创 Android 在Framework默认授予launcher runtime权限
Android版本: 8.1问题描述: 要在launcher显示通话记录calllog 和未读短信等内容,涉及运行时权限,导致必须申请运行时权限,这样就会弹窗提示,客户的需求当然是不许弹窗咯,第一次开机就要默认授权。一,privapp-permissions-mediatek.xml无效了记得以前做这种权限问题,都是直接在privapp-permissions权限白名单里加上对应权限,但是...
2019-06-25 18:20:33 2270
原创 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 1050
原创 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 198
原创 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 1646
原创 Android 用反射获取隐藏的WindowManagerService
系统里的WindowManagerService是被标记为hide的服务/** {@hide} */public class WindowManagerService extends IWindowManager.Stub这就导致我们在导入WindowManagerService的时候会报错,提示找不到class而且想直接用context.getSystemService也会得不到对象。...
2019-04-03 17:21:16 5985 3
原创 Android MonkeyRunner自动测试笔记
环境准备:windows版本:win10IDE工具:AndroidStudio环境准备:打开androidstudio里面的SDKmanager,下载最新的sdk-tools找到对应的SDK目录在bin目录里有自带的monkeyrunner.bat脚本文件但是这个脚本里面的环境配置是有问题的,这是因为,在SDK目录里找不到对应的包路径用编辑器更改:set framewor...
2019-03-13 09:55:06 411
原创 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 11963
原创 Android 信号栏SignalClusterView显示与更新流程
信号栏SignalClusterView的显示与修改上一篇博客写了关于显示SignalClusterView的流程。https://blog.csdn.net/csdnxialei/article/details/86570013这一篇写关于SignalClusterView如何在控制和显示着信号相关信息。SignalClusterView实现了多个接口。public class S...
2019-01-21 11:56:58 2112
原创 Android 状态栏Statusbar的启动与显示信号栏的过程
启动Statusbar并显示信号栏图标的过程Systemserver在启动系统服务的时候启动了Systemui。try { startSystemUi(context, windowManagerF);} catch (Throwable e) { reportWtf(&quot;starting System UI&quot;, e);}static final void startSy...
2019-01-21 10:29:42 2659
原创 Android 8.1 Settings源码解析
前言:客制化开发的过程中接触Setting次数挺多的,但是在接触的过程中发现Setting和其他应用的逻辑很不一样,Setting到底是怎么在实现逻辑的,这个问题一直环绕着在我心里,趁现在有时间,决定写个博客记录一下,温故而知新。从启动开始说起进入setting的AndroidManifest.xml里看一看,找启动Activity&amp;amp;amp;lt;activity-alias android:na...
2019-01-19 17:57:53 5734 6
原创 Android 更换系统主题app
项目需求:编写主题app,一键切换桌面app图标和系统壁纸。Android版本:8.1老大给的需求是写一个系统主题app,实现类似于华为手机内置系统主题app的功能,原生android是没有主题app的,网上都是app换肤框架,是给自己单独的app换主题,百般无奈只能自己动手写了。还好我们是在源码基础上开发,可以任性的自定义功能。步骤1:先找到Launcher加载各种app的地方a....
2019-01-08 10:42:27 4669 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 3380
原创 Android Handler知多少
Android版本:8.1我们知道MainActivity里面是不能做耗时操作的,几秒钟就会导致ANR,Application Not Responding应用无响应报错。于是我们会把耗时操作代码放在异步任务里AsyncTask,比如用异步任务从网上下载一个图片。下载完了我们就需要显示图片到Imageview上,而如果我们直接用imageview去更新图片,就会报错,提示你非主线程无法直...
2018-11-22 16:25:38 182
原创 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 1945
原创 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 559
原创 Android桌面小控件appwidget的故事Ⅰ
Android版本:8.1appwidget桌面小控件是以广播接收器的方式,通过远程调用view,实现app在桌面显示view的控件。APP要实现小控件功能,需要实现一下步骤:第一步:新建一个类继承AppWidgetProvider,然后实现其中的方法,onEnabled,onReceive,onUpdate,onDeleted,onDisabled,。。第二步:在app的Android...
2018-11-05 21:32:10 1369
原创 Android 状态栏下拉列表添加自定义item开关
需求描述:客户需要在状态栏下拉列表里添加旋转屏幕开关按钮 Android版本:android8.1这是一个长故事:public class StatusBar extends SystemUI //Statusbar是继承自SystemUI的StatusBar是个很大很大的类,里面加载了太多的对象了,在StatusBar开始的时候执行了start()方法 @Ove...
2018-09-11 18:25:17 3361
原创 Android Camera默认属性设置
需求说明:系统自带Camera需要修改默认图片预览比例以及录像比例。android版本:8.1Camera的启动activity是CameraActivity.java在启动之后在oncreate里开启了许多初始化相关的代码。 @Override public void onCreate(Bundle icicle) { super.onCreat...
2018-09-11 16:10:06 4266
原创 Android 实现KeyguardView 锁屏界面横屏显示
问题描述:设备要横屏显示所有界面,但是Keyguard锁屏界面没有横屏显示,前提条件是设备没有Gsensor重力感应。android版本:8.1解决过程:从其他资料里学习和查看了keyguard的流程,找到了控制绘制方向的地方,问题随之解决。系统在启动只会加载很多服务,SystemServer是所有服务的管家,他控制了系统服务的启动,在一切准备结束的时候,会调用各个服务的回调syste...
2018-08-17 11:11:20 3002 1
原创 Android Edittext如何将信息传递给输入法inputmethod的流程
问题描述:在message输入信息的时候,会弹框进入到全屏输入法界面,这个时候需要在输入法界面显示当前message剩余短信字数和总计数信息android版本:8.1在短信输入界面输入字符的时候的edittext,根据视图查找到这个view是ComposeMessageActivity.java的mTextEditormTextEditor = (EnhanceEditText) findView...
2018-07-14 18:48:12 2362
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人