![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技术的边边角角
文章平均质量分 61
not coder
贪财好色,一身正气
展开
-
Android 全系统版本文件读写最佳适配,CV 即用(适配到 Android 14)
Android 12及以下系统,我们只需要声明READ_EXTERNAL_STORAGE权限即可。并且由于从Android 13开始这个权限就被废弃了,因此还要加上maxSdkVersion="32"才行。参考文献:郭神: https://blog.csdn.net/guolin_blog/article/details/137410229。Android 13新增了3个运行时权限,分别用于控制App对照片、视频、音频的访问。这是能够完美适配Android各个系统版本的本地读写权限的写法。原创 2024-08-14 11:16:36 · 203 阅读 · 0 评论 -
View绘制流程的源码所得
子线程不是不能更新UI,而是谷歌工程师不让我们在子线程更新UI,是一种代码级别的约定,因为如果任意线程都能更新UI,那么系统工程师就需要做线程安全,每次更新UI都得执行加锁、解锁操作,浪费性能,还得考虑各种意外情况出于成本考虑,强制让开发者在主线程更新UI,能解决掉非常大的性能问题和巨量的工作,所以说不允许在子线程更新UI。原创 2023-09-12 22:50:15 · 207 阅读 · 0 评论 -
在android开发环境中,gradle 版本和 java 版本的对应关系
在android开发环境中,gradle 版本和 java 版本的对应关系。原创 2023-06-01 16:45:27 · 6928 阅读 · 0 评论 -
Unsupported Java. Your build is currently configured to use Java 17.0.6 and Gradle 6.8.3.
关键是知道发生了啥,精准的结果,然后才能知道可能的解决方案。原创 2023-06-01 16:43:23 · 27127 阅读 · 8 评论 -
APK解析签名错误 无法获取签名信息,请上传有效包
现象国内上架应用市场,新版本的 Android Studio (白狐之后的版本)出来的包在有的应用市场会出现以上的问题,但是我们自己查看包信息的时候都是有的,这是什么情况呢?原因新版本的 Android Studio (白狐之后的版本)没有签名选项了,出来的包只包含了v2的签名,本质是其实是配合 Google Play 的应用开发工具,所以说他的标准是对应的 Google 市场。锅由于一些国内市场没有及时跟进,只支持v1的验证,导致了新出来的包无法解析签名,从而爆出以上问题解决方案使用老版本原创 2022-03-09 15:15:38 · 5187 阅读 · 0 评论 -
Chronometer 倒计时控件,你搜到的用法可能全是错的
Chronometer 是 android 官方推出的计时控件,用法非常简单 <Chronometer android:id="@+id/tvCountTime" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#F原创 2022-02-17 18:13:28 · 3242 阅读 · 3 评论 -
Android写文件到手机中
最近在调蓝牙读卡的指令传输,写一个专门用来测试蓝牙读卡器是否符合标准的APP,但是在开发过程中,发现可能我们所做的功能跟客户的预期是有差别的,虽然原型已经确定,但是敢肯定达不到客户的预期,最终肯定面临返工的情况,所以准备采取一个补救的措施,将控制台打印的所有日志全部输出到一个txt文档中保存在手机上,记录一个完整的蓝牙连接指令传输的过程。开干。附上一个写文件的工具类:import java.io....原创 2018-06-26 17:28:04 · 2485 阅读 · 0 评论 -
kotlin中ExpandableListView无法设置adapter?
很长时间没有使用 ExpandableListView 了,kotlin 也上手使用了很长时间,前几天业务重构时候,想使用 ExpandableListView 来实现新的展开模式,但是却发现没法给 ExpandableListView 设置适配器了,一度怀疑是 Android 源码出 bug 了,时隔多年,又在作什么妖众所周知,ExpandableListView 的 adapter 需要继承 BaseExpandableListAdapter,并实现其中的一大坨方法但是我们给 ExpandableL原创 2021-08-18 14:44:40 · 386 阅读 · 0 评论 -
Android 11 wifi adb 连接错误 “Unable to start pairing client.“
Android 11 开发者模式新增了无线调试模式,扔掉了之前比较鸡肋的先插线、再连接无线调试的方式具体的连接方式在此简要带过:确保手机、电脑处于同一 Wi-Fi 下 电脑上的 Android SDK 工具需要 ≥ 30.0.0 版本,使用命令:adb --version手机开发者选项中打开无线调试,选择使用配对码配对设备电脑端输入命令adb pair xx.x.xx.xxx:xxxxx以上的xx.xx为你弹窗内容的ip地址和端口如果不出意外就会连接成功,但是有时候会原创 2021-04-16 11:10:59 · 6787 阅读 · 0 评论 -
chrom无法调试App
今天说一下chrom无法调试android App webview中的h5链接的问题前提:DCloud的5+SDK的(使用的不是这个可以退出再去百度了)具体如何进行chrom调试请自行搜索,我大概说一下基本的操作电脑chrom浏览器地址栏输入 chrome://inspect/#devices 回车连上手机然后开USB调试点开目标调试App进入目标h5页面注:如图我...原创 2019-08-16 10:04:27 · 460 阅读 · 0 评论 -
new 和 static 的理解
对于一个类中的方法和变量,我们无法保证当我们想使用它时他在内存当中一定是存在的,这个时候就要借助static将他存储到静态内存区域,以保证我们想使用的时候随时都能调到,哪怕这个类没有被执行到。比如某一个Activity还没有开始他的生命周期,就要调里面的参数或者方法。当然还有另外一种方法,就是实例化方法所在的对象,new。现在来看呢,首先是每次使用均需要实例化不太方便,然后就是在实际应用当中...原创 2017-03-08 10:59:57 · 828 阅读 · 0 评论 -
&& || & |
在java中运算符&&(与)如果第一个条件为false,则不再计算第下一个条件如果第一个条件为true,则计算下一个条件,如果下一个条件为false,则将此值返回,并不再进行下一个的计算反之亦然运算符||(或)如果第一个表达式为true,则不再计算第二个表达式如果第一个条件为false,则计算下一个条件,如果下一个条件为true,则将此值返回,并不再进...原创 2017-03-17 15:29:22 · 439 阅读 · 0 评论 -
compileSdkVersion、targetSdkVersion、minSdkVersion
做Android也好几年了,在开发过程中发现很多小伙伴对一些边边角角的东西还是不那么清楚,模模糊糊,全靠撞大运,即使是想搞明白网上的相关文章要么是写的太官方,看了更迷糊,要么就是很乱套,让人看不懂,准备出一个系列,系统讲一下边角干货,这些虽然不影响开发,但是对分析问题,定位bug还是很有帮助的,也提现了对Android基本的了解与认知,在说话时候更有底气首先,每个App的build.gradle...原创 2019-04-30 11:31:12 · 164 阅读 · 0 评论