- 博客(15)
- 问答 (2)
- 收藏
- 关注
原创 过滤汉字和特殊字符的正则表达式
public static String filterIllegalCharacters(String str) { Pattern pattern = Pattern.compile("[^\\s\\x4e00-\\u9fa5a-zA-Z0-9_-]"); Matcher matcher = pattern.matcher(str); StringBuffer buffer = new StringBuffer(); while (...
2022-04-19 10:30:00
1818
原创 Android 反射获取控件
ProgressDialog mBootMsgDialog = new ProgressDialog(mContext);try { Field file = ProgressDialog.class.getDeclaredField("mMessageView"); // 通过反射获取item_tv对象 file.setAccessible(true); //私有变量需要使用此方法 TextView textView = (TextView) file.get(mBootMsg.
2022-03-25 19:27:36
3101
原创 android静默卸载与在6.0上的异常
1. 静默应用卸载方式我们在进行应用卸载的时候,有种使用shell命令的方式进行静默卸载,不起界面,此种方式也可以适用于其他的命令//代码本质是一种在android代码中使用ProcessBuilder,非常规调用shell命令的方式String[] args = { "pm", "uninstall", packageName};//这个是shell命令中卸载的命令,也可以是其他的命令String result = null;ProcessBuilder processBu...
2021-03-03 11:36:19
818
原创 runnable与Thread的区别
新建一个线程一般有两个方法,一个是新建一个类,继承自Thread,里面重写run;另一个是新建一个Thread对象,new Thread的时候传入一个Runnable参数,其中Runnable需要重写run。为什么需要定一个类去实现Runnable接口呢?继承Thread类和实现Runnable接口有啥区别呢?实现Runnable接口,避免了继承Thread类的单继承局限性。覆盖Runna...
2019-09-10 11:19:39
418
原创 getLayoutPosition与getAdapterPosition区别详解
当我们在使用RecyclerView的getLayoutPosition与getAdapterPosition时具体区别就是adapter和layout的位置会有时间差(<16ms), 如果你改变了Adapter的数据然后刷新视图, layout需要过一段时间才会更新视图, 在这段时间里面, 这两个方法返回的position会不一样. 我在使用mList.remove(pos);no...
2019-01-23 15:39:57
11131
1
原创 CallSetting分析
通话设置应用的入口在CallFeatureSetting.java类中,package com.android.phone可以看出通话设置在Phone进程中 @Override//点击事件发生后调用的函数,不用注册监听器 public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Prefere...
2018-12-17 11:04:45
2023
原创 android源码基础——Preference认识
对于阅读android源码来说,其于android移动开发不同,不会使用很多的view控件,在xml文件中,使用最多的是preference控件,所以在看源码之前,我们需要了解一些关于preference的知识,网上关于这个的讲解很多,下面是两篇比较详细的。来自CrazyMo_的Android进阶——Preference详解之初识Preference及Preference系(一)htt...
2018-12-14 11:33:30
418
原创 呼叫转移流程(二)
下面为RIL工作框图: 呼叫转移中对RIL层返回的response,具体流程图如下 1. GsmCdmaPhone一般向RIL请求request的类中含有对应的handleMessage方法会对RIL返回的response做出回应 case EVENT_GET_CALL_FORWARD_DONE: ar = (A...
2018-12-05 11:49:17
2842
原创 呼叫转移流程分析(一)
Android5.0之后的版本,手机的CallSetting设置一般在package/apps/service/Telephony中下面为呼叫转移流程图,包括应用层与RIL的request 1.CallFeartureSettingActivity.java为通话设置入口//在谷歌的源码中没有这个类,可以直接看2、CallFeatureSetting在onResume方法中判断...
2018-12-05 09:38:01
5766
原创 解决离线下缺少libssl-dev问题
在进行工程编译过程中遇到以下问题网上找了解决办法,很简单,因为缺少libssl-dev内核,所以装上就行了sudo apt-get install libssl-dev有时候会出现安装失败的情况可以先执行sudo apt-get update然后执行sudo apt-get install libssl-dev但这是在你linux能连接外网的情况下的解决...
2018-09-18 17:06:59
12459
2
原创 误操作下的dev/sda1空间满载问题
本人是在进行工程下载时忘记cd到应该存放工程的目录下,直接在root目录下进行了下载,所以工程下到一半提示空间不足使用df –h;命令显示dev/sda1总共35g空间,已使用100%本想直接cd大sda1下删除,却显示没有这个目录,后来知道sda1是一个文件,不是一个文件夹接下来介绍本人方法:使用du –h –max-depth=1;命令,可以看到当前文件夹下的各文件夹...
2018-09-18 09:28:41
6316
转载 工作第一弹,认识git
GIT是一种版本控制软件,版本控制系统是一种记录一个或若干个内容变化,以便将来查询特定版本修订情况的系统。客户端并不只提取最新版本的文件快照,而是把原始的代码仓库完整地镜像下来。服务起发生故障都可以从本地节点恢复数据。因为每一次的提取操作,实际上都是一次对代码仓库的完整备份。 repo是Android为了方便管理多个git库而开发的Python脚本。repo的出现,并非为了取代git,而是为了...
2018-09-06 18:35:33
181
转载 二叉树的遍历
/*struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { }};*/class TreeToSequence {public:
2017-08-14 22:26:49
178
原创 关于KMP算法的理解
关于KMP算法的理解我是参考阮先生的解释http://www.ruanyifeng.com/blog/2013/05/Knuth–Morris–Pratt_algorithm.html vector pattern;//这是要小的整形串 vector str;//这是大的整形串 if (str.size()
2017-08-10 10:23:21
214
空空如也
SetLaetError该如何用???????
2015-11-19
检测静态文本控件是否大于3行,是就清空输出的字符串,下面MFC代码实现不了
2015-11-19
TA创建的收藏夹 TA关注的收藏夹
TA关注的人