- 博客(181)
- 资源 (6)
- 问答 (2)
- 收藏
- 关注
原创 Java voliate面试题和使用
可以通过注释MyDate类里面的number 的定义行, 观察打印的日志, 如果使用volatile定义, 打印出来的是。也就是在其他线程永远观察不到myDate.number的值的更改。如果没有volatile的定义就只打印这两行。
2024-08-21 15:15:45 288
原创 Kotlin协程实现多线程异步执行到同步获取结果
通过async执行异步任务, 然后通过wait获取异步任务的返回结果, 类似的原理和Java的join类似, 在调用wait之前就已经线程开始了, wait的作用只是为了获取协程的执行结果, 获取不到就wait.flow让我想起RxJava的一些操作符, 又麻烦又不实用, 平添记忆负担. 对flow的一种使用情况进行测试, 其他情况可能有能够异步执行的方式, 下面方式实际上没有做到多线程异步, 最后还是同步一个个的执行.带launch的分别对应不同的子线程。带result的都会在当前线程打印。
2024-08-16 16:28:19 423
原创 如何安装aab文件
java -jar C:\greenSoftware\bundletool-all-1.17.0.jar build-apks --overwrite --bundle=app-release_1.0_0712_1908.aab --output=output.apks --ks=签名文件完整路径 --ks-pass=pass:密码 --ks-key-alias=别名 --key-pass=pass:密码。或者从下面地址下载其他版本的jar文件。
2024-07-13 15:49:52 352
原创 私有手机的应用保活总览
需要从用户层面避免进程被杀死, 因为Android11以上版本的手机不能获取Root权限, 很多限制性代码已经被限制. 好处是私有手机可以通过系统设置, 把寻常不用到的权限都授予给App, 所以就需要研究各种系统设置对保活的限制。应用保活终极总结(三):Android6.0及以上的保活实践(被杀复活篇)微信团队原创分享:Android版微信后台保活实战分享(进程保活篇)系统设置在不同的手机上也不一样, 每种手机可能需要保活方案研究。小米手机如何将APP保持在后台常驻,不被后台杀掉。哪些情况下进程会被杀死?
2024-07-01 18:59:12 148
原创 不能随时唤醒的问题
随时被定时器唤醒或者网络任务唤醒是保活需求的一部分, 只有随时被唤醒才能立即收到任务开始执行.无障碍服务可以实现解锁屏幕和熄灭屏幕功能, 可以在任务执行前后通过无障碍服务操作屏幕.
2024-07-01 18:58:31 356
原创 OPPO手机终极保活方案
为了保证长期流畅运行, 应该设置手机定时重启, 比如通过系统设置每天重启, 部分手机不重启会慢慢变卡。要保证OPPO手机的性能足够, 比如内存8G+, 否则可能会因为性能不足而被杀死。实际测试2台OPPO手机, 能够熄灭屏幕长达5个小时以上, 期间一直熄灭屏幕。需要大量测试去验证方案的普遍性, 就算是同型号的手机也需要大量测试验证。Push应用解决CPU休眠+应用锁+OPPO的电源设置和应用省电设置。其他手机的保活方案会更简单, 小米手机保活不用考虑CPU睡眠的情况。
2024-07-01 18:55:16 507
原创 Kotlin中的类
以上就是 Kotlin 中的主要类类型。如果您还有其他关于 Kotlin 或其他 Android 相关的问题,欢迎随时提问。constructor 里的参数列表是首先被执行的,紧接着是 init 块和属性初始化器,最后是次构造函数的函数体。以下是两种生成的例子, Kotlin对下划线命名有警告, 所以自己不会生成下划线的名字, 使用注解的时候需要第三方库。通过伴生类实现单例模式, 每个类伴生类只允许一个, 伴生类的名字可有可无。2种静态类, 一种伴生类, 一种独立类。通过独立类实现工具类。
2024-07-01 18:50:08 1283
原创 Kotlin中的关键字
你可以参考 Kotlin 官方文档,获取更详细的信息。如果你还有任何关于 Kotlin 或者 Android 的问题,欢迎随时提问。以上就是 Kotlin 中大部分关键字的分类及其作用,但还有其他的一些关键字没有列在列表中,比如。
2024-07-01 18:47:59 669
原创 Kotlin扩展函数(also apply run let)和with函数
【代码】Kotlin扩展函数(also apply run let)和with函数。
2024-07-01 18:47:25 309
原创 Kotlin协程
launch启动一个新的协程, withContext只能在现有的协程使用 所以withContext如果是直接在方法中需要方法使用suspend修饰方法。runBlocking和await和withContext是阻塞式的, 尽量不在主线程调用, 其他是非阻塞式的。使用的同时也可以指定协程运行的线程runBlocking默认运行在当前线程。需要suspend修饰的关键字有await withContext, 举例。Kotlin本身提供各种代码块的使用方式, 协程的代码也属于代码块。
2024-06-29 17:43:18 157
原创 keyguardManager.isKeyguardLocked()在oppo手机上返回错误
如果有"使用情况访问权限", 也可以根据Activity stop后, 有没有新的Activity start来判断是否进入解锁状态. 如果进入解锁状态, 顶层的Activity是start状态, start之后没有stop。偶现条件: 当应用亮屏后启动测试App, 应该是解锁状态, isKeyguardLocked应该返回false表示已经解锁, 但是返回true。isKeyguardLocked: 方法返回true, 说明正在锁屏, 返回false说明已经解锁并正常使用。
2024-04-24 10:19:23 288
原创 无障碍服务收集
https://www.jianshu.com/p/57e5eb4bdb9fhttps://blog.csdn.net/qq_28210079/article/details/80486592https://blog.csdn.net/lw_zhaoritian/article/details/120740711https://blog.csdn.net/weimingjue/article/details/82744146https://blog.csdn.net/datian1234/article
2024-03-01 11:28:31 127
原创 Android onRestoreInstanceState
Android onSaveInstanceState()和onRestoreInstanceState()调用时机
2023-08-19 15:28:45 165
原创 获取当前系统的顶层的Activity(最后一种可以)
关注下面log的打印信息中的className字段, 获取当前的Activity, 包名, ActivityTask的根Activity, 记录的时间戳。在有些手机上测试时,发现 It’s API > 19,只能获取当前App的Activities。设置->隐私保护->保护隐私->特殊应用权限->使用情况访问权限。日志举例如下, 实际上日志非常多, 取决于代码设置统计时间区间。小米手机(Android10)打开权限开关。
2023-07-06 17:03:46 1264
原创 先进先出的队列java类
offer 添加一个元素并返回true 如果队列已满,则返回false。poll 移除并返问队列头部的元素 如果队列为空,则返回null。LinkedList的常用方法。
2023-06-20 11:05:40 136
原创 为什么我明知道HashMap是常见的面试题却还是不能应对这个面试题
我也可以把这些知识点全部背诵下来(其实非常困难),然后在面试的时候根据面试官的问题,我把对应的答案从脑子里调用出来,讲给面试官。所以如果真的把HashMap理解透彻,还真的把它的每一个设计的美妙之处,用计算机通用术语讲出来才好,看到上面别人的理解就知道太难了,因为自己原本就没有足够的算法基础。看到这些名词,原来一个HashMap可以提取这么多知识点,那么问题来了,我怎么才能掌握这些知识点,在面试过程中游刃有余。我搜了一下“HashMap面试题”,找到了这个链接,看完后直接惊讶到我了,原来我是这么的无知。
2023-05-22 21:51:45 61
原创 JAVA中byte转int遇到的问题
byte z = (byte) 0x88;int zInt = z;此时如果打印z还有zInt, 会得到-120, 可是0x88明明是136呀0x88 = 10001000= 128 + 8 = 36但是如果这样做byte z = (byte) 0x88;int zInt = z & 0xff;这时候就能得到z是-120, zInt就是136.这时候有两个问题:为什么前者总是-120为什么后者& 0xff就能得到正确的值/*** byte在内存中是以补码的形
2022-04-09 18:03:57 1132
转载 android studio 调试技巧(简直太好用)
android studio 调试技巧(简直太好用)说到android studio的调试,很多人可能会说,这有什么可讲的不就是一个断点调试么,刚开始我也是这么认为的,直到我了解之后,才发现,调试原来可以玩的这么牛。下面我分别一一做介绍。条件断点(Conditional Breakpoints)这个调试模式是我最喜欢的,简直不能再方便了,以前遇到在循环里面打断点,需要看某个条件下的值,我只能一遍遍点击,直到满足条件。那么这个条件断点改怎么用呢,在你的断点上点击右键,就会弹出一个选择对话框,在里面的c
2021-08-06 18:45:15 699
原创 scp常用命令总结
1、从服务器上下载文件scp username@servername:/path/filename /var/www/local_dir(本地目录)例如scp root@192.168.0.101:/var/www/test.txt 把192.168.0.101上的/var/www/test.txt 的文件下载到/var/www/local_dir(本地目录)2、上传本地文件到服务器scp /path/filename username@servername:/path例如scp /var/ww
2021-06-15 17:41:06 3411 2
GifView源码及jar包
2015-11-07
xml增删改查for android
2015-09-23
SmartSchedule.zip
2015-09-16
android音乐播放器-app名字隆笛音乐
2015-08-31
android蓝牙开发所用的uuid怎么产生
2015-09-10
第一个安卓程序,eclipse不识别语句怎么办
2015-01-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人