- 博客(229)
- 资源 (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 2061
原创 android android.permission.MANAGE_EXTERNAL_STORAGE使用
android11 及以上版本,如果release版本要读取外部存储公共目录,即sdcard公共目录,需要在androidManifest.xml下申明。好了,又可以愉快玩耍了。
2024-04-11 11:45:53 2072
原创 kotlin 简单实现实体类的Parcelable序列化接口
以前用Java代码实现Parcelable序列化接口,需要在实体类里面写一堆代码,麻烦得很,现在用kotlin开发安卓APP,只需2步就可以实现,这里记录下;2.在是实体类中使用注解@Parcelize,并实现接口Parcelable。是不是比Java时代简单多了,好了,又可以愉快玩耍了。
2024-01-22 00:18:23 785
原创 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 1706
原创 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 1648
原创 java.util.ConcurrentModificationException理解
3.打印容器对象时,会代用该对象的toString()方法,这个方法会遍历该容器对象,如果刚好遇到该对象在同时修改元素,也会触发该异常。1.这个异常不是只在多线程才会触发,单线程同样会触发,只要满足同时遍历容器对象,又同时修改里面的元素;2.容器类的迭代器中同时遍历和修改元素,也会触发该异常;因此,不要同时遍历容器对象,又同时修改里面的元素,
2023-11-29 23:16:09 478
原创 解决 android Cannot access ‘<init>‘: it is private in
经过查阅资料,原来是依赖的单例类的构造函数不能使用private,这里做个记录;
2023-10-15 23:05:09 1172
原创 kotlin 转 Java
今天突然想研究下有些kotlin文件转为Java到底长什么样,好方便优化kotlin代码,搞了半天发现一个非常简单的Android Studio或者Intellij idea官方插件Kotlin,Kotlin是插件的名字,真是醉了;由于这个类StringUtils没有声明关键字open,所以是太监类,反编译出来是final的。好了,可以愉快玩耍了。
2023-08-30 23:52:53 3983
原创 android 11及以上如何通过包名跳转APP
Android 11以下,上述代码就可以跳转,但是11及以上,查询包名相关的方法都被限制了,
2023-07-13 00:02:00 2069 1
原创 kotlin 构造函数传参的理解
kotlin和Java的构造函数差异还是有点大,这里记录下对于kotlin构造函数传参的理解;一、java构造函数有几个参数,调用方就要传几个,且不能设置默认值,而kotlin就大不一样,二、kotlin,调用构造函数时,可以用。好了,又可以愉快玩耍了。
2023-06-11 23:15:25 640
原创 kotlin 解决构造函数兼容性问题
关键字constructor代表次构造函数,这个的构造参数可以不变,留给业务方调用,当new这个次构造函数时,就会调用主构造函数,主构造函数中增加的构造参数传入了默认值,所以就没问题;这种情况会发生在高低版本的兼容性上,假如业务方不知道这个实体的构造参数发生了改变,或者说已经发出去了的旧版本没法修改这个构造了,怎么解决呢?如上所示,这里有一个实体,有2个成员变量,外面可以直接构造,没毛病,这里有2种方法可以解决,这里做个记录哈;好了,又可以愉快的玩耍了。编译器已经没有报错了;
2023-06-11 23:03:55 959
原创 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 4272
原创 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 12047 6
原创 windows 解决惠普主机核显无法输入VGA、HDMI信号问题
这个二手机器买来只能独显的VGA、DP口可以输入信息,但是DP口不稳定,显示器老黑屏,核显的VGA、HDMI口不能输出信息,现在的显示器一般都是用HDMI口,所以就像让核显能输入信息。我不信邪了,总感觉是哪里设置一些就OK了,百度了一番,找到了一个答案,在BIOS页面设置下核显视频输出就可以了。问看一些人,说可能是HDMI口坏了,可能是主板坏了……通过以上步骤,就可以打开核显的视频输入,这一项禁用了,于是修改为启动,按。好了,又可以愉快的玩耍了。2、移动方向键,进入到。
2023-04-05 15:05:56 4325
原创 android 获取手机系统属性
这个类获取,但是有一部分获取不了,比如手机子品牌“ro.product.brand.sub”,那么可以通过反射。2、也可以通过代码获取,一部分属性可以通过。
2023-02-13 23:20:41 1241
原创 解决 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 660
原创 java 抽象类有构造函数吗?
它的子类在调用自身构造函数的时候,会先调用它的构造函数,这就是规则。抽象类,我们知道是不能实例化的,那么它有构造函数吗?上述代码没有报错,说明抽象类是有构造函数的。既然抽象类不能实例化,要构造函数何用?
2022-12-25 12:52:10 280
原创 android ContentProvider call方法的使用
总所周知,ContentProvider用于跨进程通信,可以通过继承ContentProvider实现query、insert、delete、update、getType方法,来让其他进程对本进程的数据库进行CRUD增删改查操作,一般这是涉及到数据大的时候,如果涉及的数据量很小,可以通过重写ContentProvider的call 方法来简单实现跨进程通信;注意:自定义的ContentProvider也是可以在AndroidManifest.xml中指定运行在子进程的,和自定义的Service一样。
2022-12-25 12:21:05 3343 4
原创 android studio App Inspection 实时查看SQLite数据库
几年以前查看安卓手机的数据库,是把数据库文件导出到电脑上,然后用数据库查看工具查看的:Android查看手机内部储存目录及数据库文件_Alex老夫子的博客-CSDN博客_android database目录现在Android Studio 有了新的工具 App Inspection,比以前方便太多了,这里记录下怎么使用;1、 找到AS底部的App Inspection 标签,点击下,如图: 2、 手机连接上电脑,运行开发中的或者debug中的APP,左上角选中这个APP的主进程或者子进程,如图:注意:选择
2022-12-17 10:24:46 6440
原创 android buildConfigField使用
注意:特别是字符串的使用,需要使用 "\"xx\""上面的使用一开便知道如何使用,好了,又可以愉快玩耍了。
2022-12-11 11:16:11 5521
原创 android String.format()使用
平时拼接字符串,估计一开始都是用+连接的,如果拼接的字符串太多,有时就不太好阅读,为了解决这个问题,好几年前用过String.format()这个高级方法,时间久了就容易忘记,这里记录下怎么使用的;使用Locale, 这个类可以指定语言环境,比如上述代码指定了英语环境,那么不管手机切换成什么语言,都只输出英语;当遇到手机切换语言的时候,上述代码就会出现一个问题,就是可能被转化为其他语言,所以还有一个方法,其实还有很多其他的%x占位,字符串和整数是最常用的,其他的网上资料很多的,这里就不赘述了;
2022-12-10 16:30:57 541
原创 android studio 根据字符串生成资源id快捷方式
做安卓开发最大痛苦之一就是需要写许多字符串的资源文件,很多时候为了省事,直接写死在代码里面,但是这又不是规范的做法,前几天偶然get一个新技能,可以快速生成资源id,这里记录下;2、mac:option + return , win:alt + return , 在弹出框中选择。好了,又可以愉快玩耍了。
2022-12-10 15:51:53 845
原创 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 2280
原创 kotlin 如何输入箭头符号->
第一关居然是lumda表达式里面的箭头符号,居然不知道怎么输入,百度也没人写关于这个的文章,搞了一晚上,终于找到办法了,原来如此easy!18年的时候用kotlin写过后端接口,时隔5年,再次学习使用kotlin语言,好多语法都不太熟悉,然后就大功告成了,注意是英文的单横杠和尖括号哦!好了,又可以愉快玩耍了。
2022-11-29 22:17:19 550 3
原创 android RecyclerView列表自动播放实现
最近有个需求,类似于皮皮虾那种列表上有播放器,滑动停止时自动播放可视区域的第一项;查了一些资料,看了一些大神的博客,受益匪浅,这里也做一个记录,方便以后搬砖;1、监听列表的滚动事件,知道什么时候开始滚动和停止滚动;build.gradle 中加上播放器和glide的依赖。2、找出可视区域的item,再找出第一项中的播放器;3、监听移除屏幕的item,及时回收播放器资源;3、找一个适合的播放器,有些播放器就是不得劲。好了,又可以愉快玩耍了。
2022-11-23 18:08:31 1785 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 1291
原创 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 513
原创 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 1149
原创 android 记录Activity和Fragment生命周期顺序
红色字体是Activity的生命周期,黑色字体是Fragment的;前提:Activity中包含有Fragment。好了,又可以愉快玩耍了。
2022-11-13 17:01:19 1185
原创 java 关于关键字finally执行的一点思考
真出现异常,会catch异常,但是,最终返回的是finally代码块中的值;调用这个带返回值的函数,会返回哪个值呢?好了,又可以愉快玩耍了。
2022-11-12 17:47:46 130
原创 android 非前台进程发生异常,app会crash吗?
我们知道一个APP至少有个前台进程,有时会有几个进程,最常见的是有一个服务进程,前台交互的这个进程叫前台进程,优先级最高,最后才会被系统杀死;如果非前台进程发生异常了,前台进程会被杀死吗?整个APP会被杀死吗?注意:如果定义了全局异常捕获,非前台进程也是可以捕获的;好了,又可以愉快玩啥了。写一个例子来验证吧;
2022-11-12 12:35:30 209
原创 mac 设置优先连接的wifi
最近遇到一个问题,我的macbookPro一打开老是自动连接上打印机的wifi,每次都要手动切换成家里的wifi,特别麻烦,以前从没遇到过,忍了一段时间,今天终于忍不住了,还是找下解决的方案,原来很简单地设置下就ok;1、可以看到默认自动连接上了打印机,然后打开。3、找到想要连接的wifi;好了,又可以愉快玩耍了。
2022-11-10 11:25:41 1161
原创 android 断点源码不对的一个坑
两种方式都显示在主线程,这就有问题了,难道handler发送消息就处于主线程了吗?哪还需要消息队列、Looper干啥?有时候会看看Android 源码,难免会去设置断点,看看源码是否执行这一步或者源码的逻辑,比如手机是安卓版本是30,那么gradle.build这里也要设置为30;最近重新看Handler源码的时候就遇到这么一个坑;就是要求手机的版本号要和项目的编译版本号一致!经过好多天的思索,终于找到问题的答案了;好了,又可以愉快玩耍了。
2022-11-08 16:25:57 237
原创 android Room初步使用
目前最高版本是2.4.3,如果用这个版本的话,compileSdk最低要求31,这里就暂时不用最高版本,以后再用;其实就是谷歌官方的一套工具包,提供各种工具类,有一些可以不用第三方的开源库了,现在比较流行google官方的JetPack(喷气背包),这是个什么东东呢?既然Room是大势所趋,那么学一学它改如何使用吧;注意:数据库是I/O操作,所以必须执行在子线程中;Realm不推荐使用,真难用,谁用谁知道!到这里就初步实现了Room的初步使用;GreenDao还不错!好了,又可以愉快玩耍了。
2022-11-07 13:10:43 1156
原创 android 解决Warning: debug info can be unavailable.Please close other application usingADB: Monitor,
1、同时运行了AS和IntelliJ IDEA。2、电脑插上了2台安卓设备(包括模拟器)及以上。哈哈,又可以愉快玩耍了。
2022-11-07 11:28:00 1085
原创 android 解决 java.lang.Error: LeakCanary in non-debuggable build
打release包运行报错,点开提示的链接,就能打开LeakCanary官网,原来是这个库只能开发者debug,想想也是,release包给用户,用户发现内存泄漏直接就懵逼了,哈哈;好了,又可以愉快玩耍了。
2022-10-31 17:14:37 645
原创 android 设备重启代码
注意:需要系统root权限,也就是手机要root过才行,模拟器一般可以,因为有root权限。经过反复测试,此代码可以重启安卓设备,在主线程执行此代码便可;好了,又可以愉快玩耍了。
2022-10-28 19:57:36 2303
zxinglitedemo.zip
2021-06-06
keyboardPanelSwitcher
2018-04-19
模仿钉钉打卡
2017-10-12
安卓SDK自带混淆工具
2013-11-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人