自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小Q的博客

学习是一个反复理解的过程,需要保持初心

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

原创 资源覆盖-overlay机制

资源覆盖-overlay机制

2023-04-09 22:14:55 2434

原创 使用需要权限的系统api

使用需要权限的系统api

2023-04-09 17:12:03 733

原创 手势导航下显示透明状态栏和导航栏

手势导航下显示透明状态栏和导航栏

2023-03-25 17:31:44 646

原创 获取摄像头的数量以及前后区分

获取摄像头的数量以及前后区分

2023-03-25 17:12:52 904

原创 后台显示自定义Toast

后台显示自定义Toast

2023-03-25 16:40:38 803 1

原创 Android.mk中依赖aar包的正确姿势

在android.mk中添加本地的aar依赖包

2023-03-25 16:21:55 659

原创 Glide异常:Crash when activity is destroyed

如果activity已被销毁,在调用 glide 时将抛出 IllegalArgumentException异常涉及到的类是RequestManagerRetriever.java ,类中的以下代码. Glide没有将这个异常cach而是直接抛出来了,所以如果使用glide的时候,可能出现Activity正常或者异常原因destroy之后显示图片,最好判断一下context@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR1)private static v

2022-01-21 19:41:10 2642

原创 getInstalledPackages(0)报错DeadSystemException

context?.packageManager?.getInstalledPackages(0)?.forEach { it?.let { p -> if (p.packageName == GOOGLE_MAP_PACKAGE_NAME) { googleMapIcon.setImageDrawable(p.applicationInfo.loadIcon(context?.pa.

2021-12-31 15:16:08 2419

原创 每日一题:LeetCode 84. 柱状图中最大的矩形

给定n个非负整数,用来表示柱状图中各个柱子的高度。每个柱子彼此相邻,且宽度为 1 。求在该柱状图中,能够勾勒出来的矩形的最大面积。

2021-06-09 06:39:58 357

原创 每日一题:LeetCode 20. 有效的括号

给定一个只包括 '(',')','{','}','[',']'的字符串 s ,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。示例 1:输入:s = "()"输出:true示例2:输入:s = "()[]{}"输出:true示例3:输入:s = "(]"输出:false示例4:输入:s = "([)]"输出:false示例5:输入:s = "{[]}"输出:true提示:1 &...

2021-06-07 05:37:33 104

原创 每日一题:LeetCode 15.三数之和

class Solution { public int[] twoSum(int[] nums, int target) { for(int i = 0;i < nums.length - 2;i++){ for(int j = 0;j < nums.length - 1;j++){ if(nums[i] + nums[j] == target){ return new in.

2021-06-05 21:50:16 2226

原创 每日一题:LeetCode 70.爬楼梯

假设你正在爬楼梯。需要 n阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1. 1 阶 + 1 阶2. 2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1. 1 阶 + 1 阶 + 1 阶2. 1 阶 + 2 阶3. 2 阶 + 1 阶来源:力扣(LeetCode)链接:https://leetco..

2021-06-04 08:40:58 341

原创 每日一题:LeetCode 283. Move Zeroes

给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾,同时保持非零元素的相对顺序。示例:输入: [0,1,0,3,12]输出: [1,3,12,0,0]说明:必须在原数组上操作,不能拷贝额外的数组。尽量减少操作次数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/move-zeroes著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。这种题目可以用shuang'zh...

2021-06-03 07:10:13 92

原创 每日一题:LeetCode 146 LRU缓存

请实现一个函数,把字符串 s 中的每个空格替换成"%20"。示例 1:输入:s = "We are happy."输出:"We%20are%20happy."限制:0 <= s 的长度 <= 10000来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/ti-huan-kong-ge-lcof...

2021-06-02 06:47:48 192

原创 《暗时间》读书笔记

2021-03-02 15:44:07 118

原创 《测试驱动开发》读书笔记

读完本书的实践:从简单的例子开始写自动测试程序重构,每次增加一个新的设计构思开发节奏 -> 不可运行/可运行/重构应该测试什么?1 在开始写测试之前,写一个包含你认为必须要编写测试的清单,把你所知道需要实现的每种操作的范例都记录在清单上2 对于那些目前还不存在的操作,将其记录到清单上3 列出所有你认为在这一轮编程结束后为了获得整洁的代码而必须完成的重构测试驱动开发的过程1 加入一个小的测试2 运行所有测试,运行失败3 适当修改...

2021-02-24 19:47:02 167

原创 Android日志系统化的思考

2021-02-24 10:17:39 144

原创 kotlin 中 object 关键字的使用详解

object使用 kotlin中文官网:https://www.kotlincn.net/docs/reference/object-declarations.html学习笔记

2021-01-31 10:41:27 268

原创 Android Room操作数据库常用的SQL命令

不管是使用开源的数据库还是原生自带的,学会一些SQL命令是非常有必要的.文章接下来是自己在使用Room的过程中使用的sql语句.关于Room的使用说明见官网https://developer.android.com/training/data-storage/room在操作数据库以及数据库升级的过程中,会频繁的用到sql语句,下面来分别说明1使用RoomDAO访问数据 @Entity public class User { @PrimaryKey...

2021-01-07 13:59:29 5669

原创 git查看某个commit属于哪个分支

由于业务需求量很大,所以项目分支很多,有时候有些功能点没有合并到某一个分支,当通过sourcetree找到提交之后,如何知道某个提交对应的分支呢?使用如下命令即可 git branch --contains 89eb2ac2838dde77dab032a8e3b82ae087fc30b0 --all找到后就可以更好的有针对性的合并功能点...

2021-01-04 11:36:16 16256

原创 Java split() 方法对于单个及多个特殊字符的处理

作用:split() 方法根据匹配给定的正则表达式来拆分字符串。注意:.、$、|和*等转义字符,必须得加\\。注意:多个分隔符,可以用|作为连字符。

2020-12-31 20:02:56 1511

原创 Android Sqlite数据库升级时注意事项

有很多老项目还是用的原生的数据库,没有使用成熟的android框架,在维护此类项目的时候,自己还是要知道这些最基本的细节的public class DatabaseHelper extends SQLiteOpenHelper { public DatabaseHelper(Context context, String name, CursorFactory factory, int version) { super(context, name, factory, ver.

2020-12-31 19:46:06 127

原创 在浏览器中实时查看,调试android SQLite数据库的开源框架

AndroidDebugDatabase作用:查看所有数据库。 查看应用程序中使用的共享首选项中的所有数据。 在给定的数据库上运行任何sql查询,以更新和删除您的数据。 直接编辑数据库值。 直接编辑共享的首选项。 直接在数据库中添加一行。 在共享首选项中直接添加键值。 删除数据库行和共享首选项。 搜索您的数据。 排序数据。 下载数据库。 Debug Room inMemory database.所有这些功能都无需root你的设备注意: 只能debug模式下看得到将此添..

2020-12-25 20:08:19 621 1

原创 java 获取MAC地址

mac地址又称为物理地址,和ip地址不同的是,mac地址由网卡决定,也就是一个设备只能有一个mac地址,所以经常作为唯一标识码来使用取MAC地址有一个BUG,就是网卡没有初始化时,获取到的是空获取mac必须是打开wifi设置过一次(之后关闭也没事),之后就会正常获取到mac如下获取方式可以循环获取mac地址,直到获取成功public static String getMac(Context context) { String macAddress = null; WifiMa...

2020-12-24 16:12:49 388

原创 读编程好书,内化并运用

文章是我在读《程序员的修炼之道:从小工到专家》这本书的时候看到的一篇我觉得比较优秀的序言,所以分享出来,也便于自己阅览,序言如下如下: 程序员心底的小声音编程大约有三个境界,新手、高手和高不成低不就的中手。这三个境界,大致和王国维先生划定的做学问的三个境界一一对应。一般来说,如果不经过几十万行的代码的锤炼(衣带渐宽终不悔,为伊消得...

2020-10-07 13:26:15 300 1

原创 《敏捷开发修炼之道》读书笔记

以上是自己每天临近下班前半小时阅读的书籍,目前将它整理成了思维导图,方便以后阅览. 如果需要完整xml文件,请留言或私信以下是部分主要章节:基本概念及工具基础敏捷反馈敏捷编码敏捷调试敏捷协作...

2020-09-14 20:39:31 154

原创 《深度工作》 读书笔记

浮浅工作:对认知要求不高的事务性任务,通常在受到干扰的情况下开展。此类工作通常不会为世界创造太多价值,且容易复制。培养定量分析每一项活动的深度的习惯学习并坚持任务深浅度的分配比例,把浮浅工作占用的时间和精力限制到足够小坚持固定日程生产力,在某个固定时间后不再工作,设置自己的达摩克利斯之剑。变得不容易联系到,给自己和别人设置过滤器高度集中注意力需要训练进行有成果的冥想:在身体劳作而心智空闲的时候,将注意力集中到一件定义明确的专业难题上,在一个问题上不...

2020-09-12 23:39:43 206

原创 思维逻辑 - 维护一个问题及其解决方案的日志

维护一个问题及其解决方案的日志. 保留解决方案是修复问题过程的一部分,以后发生相同或类似问题时,就可以很快找到并使用了解决方案日志应该作为思考的一个来源,可以在其中发现某些特定问题的细节.对于某些类似但是有差异的问题,也能从中获得修复的指引.记录问题的时间不能超过在解决问题上花费的时间, 要保持轻量级和简单. 可以使用清晰明显的关键字如果面临的问题无法在日志中找到解决方案,在问题解决之后,要记得马上将新的细节记录到日志中去.要共享日志给其他人,而不是靠一个人维护.把它...

2020-08-20 19:42:12 138

原创 思维逻辑 - 事前剖析

今天在学习java log的过程中,突然看到这样一段apivoid entering(String className, String methodName) • void entering(String className, String methodName, Object param) void entering(String className, String methodName, Object[] param) • void exiting(String className, .

2020-07-24 19:47:52 476

原创 心理学词汇学习 - 习得性无助

我最近更改了自己的签名 称自己 孤独患者 不善于社交 一不小心就给自己贴了标签后来看书的时候,看到了这个词--习得性无助 我摘抄自己看到的一句话:"当一个人在某件事情上付出多次努力,并反复失败,形成了"行为与结果无关"的信念后",可能就会将这一无助的感觉过度泛化到新的情景中,深圳包括那些本可以控制的情境.比如,你已经在很长一段时间内处于孤独中,你就会渐渐认为孤独才是人生的真实,从而更加放弃与人交流"对于这段话,我有一些自己的理解,因为之前自己一直尝试建立亲密关系,但是由于碰壁的次数,或者问题的..

2020-06-10 10:57:19 674

原创 录制wav音频,由于权限导致AudioRecord无法初始化解决

首先感谢大佬完整的录制wav音频工程https://www.cnblogs.com/Amandaliu/archive/2013/02/04/2891604.html公司要求:紧接着自己按照要求去实现,代码走道如下流程的时候发生了异常:public int startRecordAndFile() { //判断是否有外部存储设备sdcard ...

2020-04-17 16:56:59 1348 1

原创 BUG fix BroadcastReceiver有序接收广播,设置标记位失败及解决

这次要不是问了同事,感觉陷在里面无法出来了...公司的需求是这样的,根据不同的广播去做不同的事情,比如广播A和广播B同时会接收到很多次,现在的需求就是,接收到广播A之后,做事情A, 然后上报数据给服务器. 如果后面陆续收到广播A的广播,则不用去上传. 那什么时候能上传呢?当收到广播B的时候,做事情B, 然后上报数据给服务器. 然后再收到广播A就可以再上传一次. 广播A和B都只是上传一次数...

2019-09-06 15:31:56 157

原创 Android 导出数据库文件,windows下操作数据库方式

windows下操作数据库方式1 临时或者永久ROOT机器: 每个公司root方式不同,待定2 进入shell环境下操作: adb shell3 重新挂载以便于后面修改权限: mount-orw,remount/system4 进入对应数据库目录: cd/data/data/com.xxx.xxx/databases5 一般情况下data文件夹是不能直接打开的,需要修改...

2019-08-07 11:13:50 336

原创 BUG fix 记一次翻车事故 SQLiteException: no such table: xxx(code 1): , while compiling: SELECT

如上所示: 真是惨痛的BUG 我找了很久. 寻找过程如下:1 由于机器是刷机开机之后,报了这个错误,报错之后,再次进入原来报错界面就不会报错了. 所以不是很好测试. 同事建议我说,可以把数据库导出来看看是否存在对应的数据库(十分感谢同事!!) 在经过临时ROOT机器之后,一层一层的通过命令行去改变文件权限并进入到对应的包名数据库下面,pull出了数据库,然后发现数据库里面的数据都是...

2019-08-06 17:07:53 10232

转载 常用adb 和 adb shell 命令

转载地址:https://zhuanlan.zhihu.com/p/43731848调试相关1. adb 服务开启服务adb start-sever 关闭服务adb stop-server2. 设备列出设备及其idadb devices 使用特定设备操作adb -s device_id 例如:adb -s 47db0de20304 shell3. 重启正常重启...

2019-04-12 16:13:20 5101

转载 理解 Android Build 系统

链接:https://www.ibm.com/developerworks/cn/opensource/os-cn-android-build/index.html前言Android Build 系统是 Android 源码的一部分。关于如何获取 Android 源码,请参照 Android Source 官方网站:http://source.android.com/source/do...

2019-02-28 21:36:07 191

转载 版本控制的最佳实践

地址:https://www.git-tower.com/learn/git/ebook/cn/command-line/appendix/best-practices#start说在前面的话:即使是懂得如何运用基本技巧,如工作流,回滚,追加备注等等,想要良好的运用Git 还有很多要去学习,不止于它的技巧,还应包括它的理念。 版本控制的最佳实践提交对映改动一次提交要包括一个...

2019-01-31 07:07:03 222

原创 Android Utils - 打开外部地图导航(百度、高德、腾讯)

外部打开腾讯地图网页版: 1、腾讯地图官方文档说明   Intent tengXuIntent = new Intent(); // 驾车路线规划 tengXuIntent.setData(Uri.parse("qqmap://map/routeplan?type=drive&amp;from=我的位置&...

2018-12-23 10:47:49 1329

原创 Git常用指令及问题解决

Git是有中文版的使用手册的https://git-scm.com/book/zh/v2新公司进去全部用的Git,不过对于我来说,很快就熟悉了,包括一些工作流,分支等等期间还学习了廖雪峰的Githttps://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000  Git基础知...

2018-11-04 08:38:52 729

转载 No toolchains found in the NDK toolchains folder for ABI with prefix

作者:啊啊啊阿门地址:https://www.jianshu.com/p/fd3d49c7f1f8通过Android Studio 的Sdk Manager安装NDK,安装完之后编译失败,报错信息入下:No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android...

2018-09-22 23:50:03 859

空空如也

空空如也

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

TA关注的人

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