- 博客(235)
- 资源 (32)
- 收藏
- 关注

原创 Android 实用开源项目集合 持续更新
1、Android 万能的Adapter for ListView,RecyclerView,GridView等,支持多种Item类型的情况。https://github.com/hongyangAndroid/baseAdapter 点击打开链接2、播放gif图片。https://github.com/koral--/android-gif-drawab...
2017-09-11 17:24:16
2144
原创 Android Stuido 调整左侧文件导航栏文字大小
File-->Settings-->Appearance & Behavior-->Appearance-->勾上“Use custom font:”就可以调整文字大小了,然后确定就好了。
2025-03-03 17:27:14
366
原创 Android studio设置代码区文字大小和间距
File-->Settings-->Editor-->Color Scheme-->Console Font-->勾上“Use console font instead of the default”就可以修改文字大小和行间距了。
2025-03-03 17:21:37
361
原创 解决android studio(ladybug版本) gradle的一些task突然消失了
File -->Settings-->Experimental--> 取消选项“Enable support for multi-variant Javadocs and Sources”再同步下,就可以开心玩耍了。
2025-03-01 10:22:53
250
原创 升级android35报Illegal Unicode escape sequence
原来是AS将自定义的AIDL文件预编译成java文件,加上了一些路径的注释,刚好我们的路径特殊,这个路径里面带有\u,被认为是不符合unicode规范,目前这个是无解的,只能等谷歌慢慢修复了,当然,不想等的话,直接修改路径,不要带u开头。最近升级项目SDK到android35,编译时预编译自定义的AIDL文件报“Illegal Unicode escape sequence”,搞了一晚上再请教了大佬,得到结论了 ,总结下。
2024-12-05 14:27:37
510
原创 android android.permission.MANAGE_EXTERNAL_STORAGE使用
android11 及以上版本,如果release版本要读取外部存储公共目录,即sdcard公共目录,需要在androidManifest.xml下申明。好了,又可以愉快玩耍了。
2024-04-11 11:45:53
3952
原创 kotlin 简单实现实体类的Parcelable序列化接口
以前用Java代码实现Parcelable序列化接口,需要在实体类里面写一堆代码,麻烦得很,现在用kotlin开发安卓APP,只需2步就可以实现,这里记录下;2.在是实体类中使用注解@Parcelize,并实现接口Parcelable。是不是比Java时代简单多了,好了,又可以愉快玩耍了。
2024-01-22 00:18:23
948
原创 android 解决 adb命令启动service报app is in background uid null
1. adb shell am start-foreground-service -n 包名/类名。1. adb shell am startservice -n 包名/类名。
2023-12-17 16:40:23
2602
原创 python 解决 Windows import pandas as pd ModuleNotFoundError: No module named ‘pandas‘
输入(1)python -m ensurepip,(2)pyhon -m pip install –upgrade pip。最后研究了半天是安装了Python和配置了环境变量后,还需要安装。输入 python -m pip list。输入 pip install pandas。都安装好后,又可以愉快玩耍了。
2023-12-17 16:25:29
2298
原创 java.util.ConcurrentModificationException理解
3.打印容器对象时,会代用该对象的toString()方法,这个方法会遍历该容器对象,如果刚好遇到该对象在同时修改元素,也会触发该异常。1.这个异常不是只在多线程才会触发,单线程同样会触发,只要满足同时遍历容器对象,又同时修改里面的元素;2.容器类的迭代器中同时遍历和修改元素,也会触发该异常;因此,不要同时遍历容器对象,又同时修改里面的元素,
2023-11-29 23:16:09
522
原创 解决 android Cannot access ‘<init>‘: it is private in
经过查阅资料,原来是依赖的单例类的构造函数不能使用private,这里做个记录;
2023-10-15 23:05:09
1466
原创 kotlin 转 Java
今天突然想研究下有些kotlin文件转为Java到底长什么样,好方便优化kotlin代码,搞了半天发现一个非常简单的Android Studio或者Intellij idea官方插件Kotlin,Kotlin是插件的名字,真是醉了;由于这个类StringUtils没有声明关键字open,所以是太监类,反编译出来是final的。好了,可以愉快玩耍了。
2023-08-30 23:52:53
4530
原创 android 11及以上如何通过包名跳转APP
Android 11以下,上述代码就可以跳转,但是11及以上,查询包名相关的方法都被限制了,
2023-07-13 00:02:00
2748
1
原创 kotlin 构造函数传参的理解
kotlin和Java的构造函数差异还是有点大,这里记录下对于kotlin构造函数传参的理解;一、java构造函数有几个参数,调用方就要传几个,且不能设置默认值,而kotlin就大不一样,二、kotlin,调用构造函数时,可以用。好了,又可以愉快玩耍了。
2023-06-11 23:15:25
785
原创 kotlin 解决构造函数兼容性问题
关键字constructor代表次构造函数,这个的构造参数可以不变,留给业务方调用,当new这个次构造函数时,就会调用主构造函数,主构造函数中增加的构造参数传入了默认值,所以就没问题;这种情况会发生在高低版本的兼容性上,假如业务方不知道这个实体的构造参数发生了改变,或者说已经发出去了的旧版本没法修改这个构造了,怎么解决呢?如上所示,这里有一个实体,有2个成员变量,外面可以直接构造,没毛病,这里有2种方法可以解决,这里做个记录哈;好了,又可以愉快的玩耍了。编译器已经没有报错了;
2023-06-11 23:03:55
1051
原创 android 解决java.lang.SecurityException: Package com.xxx.xxx does not belong to 1000
比如,在进程A中调用进程B,进程B再去访问ContentProvider的call、query等方法,而call、query等方法里面又调用了ContentProvider.getCallingPackage(),那么就会报这个错;问题就出在进程A调用了进程B,进程B去访问ContentProvider.getCallingPackage(), 然后Binder.getCallingUid拿到的是进程A的身份的uid,而不是进程B的身份uid。解决问题的关键方法在于call()前后加上代码。
2023-06-04 18:36:31
5652
原创 Android Studio 解决Could not resolve com.android.tools.build:gradle:7.4.2问题
昨天用老版本的Android Studio 新建了一个Kotlin项目,. 之类的提示没有,应该是环境问题,就升级了Android Studio到最新的电鳗版本,新建kotlin项目就报上述错误。好了,又可以愉快的玩耍了。
2023-04-06 08:57:33
13958
6
原创 windows 解决惠普主机核显无法输入VGA、HDMI信号问题
这个二手机器买来只能独显的VGA、DP口可以输入信息,但是DP口不稳定,显示器老黑屏,核显的VGA、HDMI口不能输出信息,现在的显示器一般都是用HDMI口,所以就像让核显能输入信息。我不信邪了,总感觉是哪里设置一些就OK了,百度了一番,找到了一个答案,在BIOS页面设置下核显视频输出就可以了。问看一些人,说可能是HDMI口坏了,可能是主板坏了……通过以上步骤,就可以打开核显的视频输入,这一项禁用了,于是修改为启动,按。好了,又可以愉快的玩耍了。2、移动方向键,进入到。
2023-04-05 15:05:56
5652
原创 android 获取手机系统属性
这个类获取,但是有一部分获取不了,比如手机子品牌“ro.product.brand.sub”,那么可以通过反射。2、也可以通过代码获取,一部分属性可以通过。
2023-02-13 23:20:41
1354
原创 解决 Unable to negotiate with 192.21.5.163 port 98563: no matching host key type found. Their offer: s
然后再次克隆就OK了。
2023-01-16 21:56:17
719
原创 java 抽象类有构造函数吗?
它的子类在调用自身构造函数的时候,会先调用它的构造函数,这就是规则。抽象类,我们知道是不能实例化的,那么它有构造函数吗?上述代码没有报错,说明抽象类是有构造函数的。既然抽象类不能实例化,要构造函数何用?
2022-12-25 12:52:10
325
原创 android ContentProvider call方法的使用
总所周知,ContentProvider用于跨进程通信,可以通过继承ContentProvider实现query、insert、delete、update、getType方法,来让其他进程对本进程的数据库进行CRUD增删改查操作,一般这是涉及到数据大的时候,如果涉及的数据量很小,可以通过重写ContentProvider的call 方法来简单实现跨进程通信;注意:自定义的ContentProvider也是可以在AndroidManifest.xml中指定运行在子进程的,和自定义的Service一样。
2022-12-25 12:21:05
4662
4
原创 android studio App Inspection 实时查看SQLite数据库
几年以前查看安卓手机的数据库,是把数据库文件导出到电脑上,然后用数据库查看工具查看的:Android查看手机内部储存目录及数据库文件_Alex老夫子的博客-优快云博客_android database目录现在Android Studio 有了新的工具 App Inspection,比以前方便太多了,这里记录下怎么使用;1、 找到AS底部的App Inspection 标签,点击下,如图: 2、 手机连接上电脑,运行开发中的或者debug中的APP,左上角选中这个APP的主进程或者子进程,如图:注意:选择
2022-12-17 10:24:46
7688
原创 android buildConfigField使用
注意:特别是字符串的使用,需要使用 "\"xx\""上面的使用一开便知道如何使用,好了,又可以愉快玩耍了。
2022-12-11 11:16:11
5834
原创 android String.format()使用
平时拼接字符串,估计一开始都是用+连接的,如果拼接的字符串太多,有时就不太好阅读,为了解决这个问题,好几年前用过String.format()这个高级方法,时间久了就容易忘记,这里记录下怎么使用的;使用Locale, 这个类可以指定语言环境,比如上述代码指定了英语环境,那么不管手机切换成什么语言,都只输出英语;当遇到手机切换语言的时候,上述代码就会出现一个问题,就是可能被转化为其他语言,所以还有一个方法,其实还有很多其他的%x占位,字符串和整数是最常用的,其他的网上资料很多的,这里就不赘述了;
2022-12-10 16:30:57
610
原创 android studio 根据字符串生成资源id快捷方式
做安卓开发最大痛苦之一就是需要写许多字符串的资源文件,很多时候为了省事,直接写死在代码里面,但是这又不是规范的做法,前几天偶然get一个新技能,可以快速生成资源id,这里记录下;2、mac:option + return , win:alt + return , 在弹出框中选择。好了,又可以愉快玩耍了。
2022-12-10 15:51:53
942
原创 android studio 海豚版本 Logcat多标签过滤日志的变化
什么时候需要用到多tag过滤呢?当需要查看不同的tag下代码执行流程的顺序;AS之前的版本Logcat可以在filter中编写正则表达式过滤多个标签,或者在日志搜索框输入多个tag的正则表达式,比如:tag1|tag2 但是更新了最新的AS海豚版本后,很多工具栏都消失了,只能在搜索框里面输入正则表达式了,比如:tag~: tag1|tag2如果不想搜索某个或某些tag,可以写成,比如:-tag~: tag1|tag2get到一个新技能,又可以愉快玩耍了。
2022-12-06 22:47:18
2687
原创 kotlin 如何输入箭头符号->
第一关居然是lumda表达式里面的箭头符号,居然不知道怎么输入,百度也没人写关于这个的文章,搞了一晚上,终于找到办法了,原来如此easy!18年的时候用kotlin写过后端接口,时隔5年,再次学习使用kotlin语言,好多语法都不太熟悉,然后就大功告成了,注意是英文的单横杠和尖括号哦!好了,又可以愉快玩耍了。
2022-11-29 22:17:19
628
3
原创 android RecyclerView列表自动播放实现
最近有个需求,类似于皮皮虾那种列表上有播放器,滑动停止时自动播放可视区域的第一项;查了一些资料,看了一些大神的博客,受益匪浅,这里也做一个记录,方便以后搬砖;1、监听列表的滚动事件,知道什么时候开始滚动和停止滚动;build.gradle 中加上播放器和glide的依赖。2、找出可视区域的item,再找出第一项中的播放器;3、监听移除屏幕的item,及时回收播放器资源;3、找一个适合的播放器,有些播放器就是不得劲。好了,又可以愉快玩耍了。
2022-11-23 18:08:31
1946
3
原创 android 解决java.lang.IllegalArgumentException: The key must be an application-specific resource id
看提示,很明显了,说不能直接用整数作为key,要使用资源id,这是为了保证此整数的唯一性;这里用到了根据key设置tag,直接用的整数,就如上所述异常;在view中设置tag,有2种方法,好了,又可以愉快玩耍了。
2022-11-20 17:04:41
1414
原创 java private 修饰的方法是默认final的吗?
我们知道private修饰的方法是不可以被子类重写的,Java中被final定义的方法是最终方法,是不能重写的,我们可以说private修饰的方法是默认final的吗?通过查看字节码文件,也可以得出private修饰的方法不是默认final的,因为访问标识符不一样,通过jclasslib bytecode viewer 插件查看,《Java编程思想》中提到private修饰的方法不是默认final的,可以理解为是一种隐式的final的方法;看了一些大神的见解,其实至今依然迷惑,有的说Yes, 有的说No;
2022-11-13 18:27:38
567
原创 android studio 字节码查看工具jclasslib bytecode viewer
可以下载软件安装使用,也可以直接在Android Studio 或者 IntelliJ IDEA中安装插件使用;jclasslib bytecode viewer 是一款非常好用的.class文件查看工具;其次,输入jclasslib bytecode viewer,搜索到这个插件安装好,然后。首先,进入到下载插件的界面,windows 和 mac有一点点区别;这样就安装好了,接着去项目中,选中目标Java文件,然后。还可以对.class信息进行编辑;好了,又可以愉快玩耍了。
2022-11-13 18:09:28
1238
原创 android 记录Activity和Fragment生命周期顺序
红色字体是Activity的生命周期,黑色字体是Fragment的;前提:Activity中包含有Fragment。好了,又可以愉快玩耍了。
2022-11-13 17:01:19
1502
原创 java 关于关键字finally执行的一点思考
真出现异常,会catch异常,但是,最终返回的是finally代码块中的值;调用这个带返回值的函数,会返回哪个值呢?好了,又可以愉快玩耍了。
2022-11-12 17:47:46
155
原创 android 非前台进程发生异常,app会crash吗?
我们知道一个APP至少有个前台进程,有时会有几个进程,最常见的是有一个服务进程,前台交互的这个进程叫前台进程,优先级最高,最后才会被系统杀死;如果非前台进程发生异常了,前台进程会被杀死吗?整个APP会被杀死吗?注意:如果定义了全局异常捕获,非前台进程也是可以捕获的;好了,又可以愉快玩啥了。写一个例子来验证吧;
2022-11-12 12:35:30
255
zxinglitedemo.zip
2021-06-06
keyboardPanelSwitcher
2018-04-19
模仿钉钉打卡
2017-10-12
安卓SDK自带混淆工具
2013-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人