- 博客(114)
- 资源 (9)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 让ADB使用更方便,adb-idea插件升级版发布
起源前段时间鸿洋推送的一篇《推荐3个有用的开源项目》文章中,推荐了一篇github上的ADB 用法大全 ,非常的全面,正如大全中提到的: "ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具."相信做安卓开发的肯定都会用到.它的功能是非常强大的.但是强大一般也意味着复杂.我除了
2018-10-14 13:35:59
5356
4
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 安卓开发插件推荐
前言 现在的安卓码农们,基本上都已经把锄头换成Android Studio了吧,Android Studio是基于Jetbrains 的IntelliJ IDEA开发的。 继承了Jetbrains全家桶系列的优良风格:智能,强大,界面美观。。。我刚刚从Eclipse转到IDEA的时候还很不习惯,但是为了这个颜值,还是坚持了下来,后来推出了Android Studio,立马就无缝上手了。和...
2018-07-07 15:14:55
7485
8
原创 Directory Opus 添加管理员获得所有权右键菜单
在windows的资源管理器中添加管理员获得所有权的右键菜单很容易,通过注册表就可以了.但是在Directory Opus需要另外的操作方式,保存后,调整到适当的位置即可.
2024-08-21 11:49:51
150
原创 Directory Opus 13.6 可用的apk文件右键菜单脚本
选择对应的设备就可以了,存在的问题是会弹出命令行的黑框.但是比输序号还是要方便,优雅一些。
2024-06-07 19:09:12
328
原创 小爱同学+Home Assistant实现开关电脑
五一在屋里没事干,折腾一下Home Assistant,参照前辈经验,自己折腾一番,成功实现了用小爱同学开关自己的台式机.记录一下采坑过程.
2024-05-04 20:59:25
1530
1
原创 怎么从WillPopScope迁移到PopScope
直接接收一个bool,和一个不好用的回调,不能再愉快的进行异步调用判断是否要pop了,个人觉得是反向升级.那么在PopScope下怎么进行异步判断呢?最近把flutter升级到了3.22.0-0.1.pre,3.19的正式版在我的项目上有些问题,先到预览版过渡一下.迁移到了PopScope,但是PopScope接受的是否pop的参数和WillPopScope相比变化较大,
2024-04-18 16:10:05
1246
原创 IRremoteESP8266红外信号转安卓
最近换了Redmi Note12T,又带红外了,还是比较方便的,但是一些冷门的遥控在MIUI的遥控器里面是找不到的,比如我的DAC(SMSL SU-9),之前我是通过手机发送指令通过阿里云到esp8266来模拟控制实现手机遥控的,现在手机自带了红外也可以添加一个直接控制的途径.
2023-04-05 12:36:22
322
原创 Fridia Java.classFactory.loader:Cannot assign to ‘loader‘ because it is a read-only property.
当在使用fridia hook非默认的classloader加载的class(也就是插件化,动态化使用dalvik.system.PathClassLoader进行加载的)的时候,我们按照前辈的经验写下:Java.enumerateClassLoaders({ "onMatch": function(loader) { if (loader.toString().indexOf("main.so") >= 0 ) { Java.
2022-04-14 16:10:25
699
原创 双击安装Apk,可选目标设备的小脚本
在逆向或者开发的时候经常需要安装Apk到设备,一般都用adb install z:/xxx.apk进行安装,如果adb只连了一个设备还好,要是多连了几个就麻烦了,需要adb -s 设备号 install z:/xxx.apk来进行安装,设备号或者是IP:端口还一长串,要么直接手输,要么先adb devices进行复制,非常的不方便.有了这个小脚本就方便了,如果只连了一个设备双击就可以直接安装,如果有多个设备则只需要多输入一个代表index的数字就可以了,还是很方便的.环境win11Gitadb
2021-11-23 17:28:14
795
原创 JNI的简单动态注册及反编译查看
在常规的JNI静态注册中,用IDA打开对应的so(share object)库后就能直接在Exports选项卡中找到对应的方法入口:external fun staticRegister(f1:Float,f2:Float):Float比较容易被找到切入点,除了静态注册这种方法外,还有一种动态注册的方式,相对来说可以隐秘一些,增加逆向难度.实现kt//as这里会爆红:Cannot resolve corresponding JNI function Java_com_longforus_tes
2021-11-17 18:38:46
1432
原创 dart run build_runner build提示Could not find the implicit file to run: bin\flutter.dart.
最近的flutter在使用ObjectBox for Dart/Flutter,因为换了项目位置所以需要重新生成一下objectbox.g.dart文件,但是按照文档运行,dart run build_runner build却提示: Could not find the implicit file to run: bin\flutter.dart.Usage: dart run [arguments] <dart file | package target>-h, --help
2021-09-01 14:21:57
758
原创 树莓派 Volumio 3.5触摸屏(GPIO) 配置教程
最近咸鱼淘了一个树莓派3B(买成210血亏哦,200以下差不多)做数播,装的Volumio系统,和少帅的i2c转同轴的板(连同壳子140+),后来又淘了一个3.5寸的TFT小屏幕3.5inch RPi Display - LCD wiki(我在咸鱼买的,60感觉贵了,50差不多),用杜邦线接出来,现在感觉更加完美了.但是这个屏幕在Volumio上的配置和默认的Raspbian &Ubuntu Mate系统上有些不一样,用脚本安装会导致变砖,无法开机,本来都想放弃了,结果上谷歌一搜,在Volu
2021-08-07 17:19:43
7292
5
转载 有些笑话记一下
很久以前 电脑小白 高手 系列一很久以前,那还是我用win98的时候有次我系统崩溃了,因为我是电脑白痴,我朋友给我介绍了一个高手来帮我修电脑。他看了一下电脑,问我有没有98的盘,我说没有。他想了一下,叫我把固定电话拿给他,我想修电脑要电话干什么,但人家是高手,我也不好说什么,就把电话拔下来给他了。他把电话线空着的一头接在电脑的一个插孔内,然后进入了dos,然后就开始在电话上不停的按着键,他按键的速度非常快,但是只按0,1两个键,我搞不懂这有什么用,但也不敢问,看了半个多小时,他还是不停的按这两个键
2021-07-15 17:36:15
243
原创 一键实现打release包 -> 360加固 -> 存档,并在后期一键实现针对某一版本生成Sophix补丁的gradle脚本
一键实现打release包 -> 360加固 -> 存档,并在后期一键实现针对某一版本生成Sophix补丁的gradle脚本最近升级项目把Bugly-Tinker换成了Sophix,因为使用了阿里的tlog服务,之前用Bugly的更新服务,现在也没有使用了,索性就把CrashReport和Hotfix都切过来吧,还有一点是Bugly-Tinker的更新比较不及时,AGP的版本需要留在3.5.3才能有比较好的体验,升级了之后需要诸多调整,而且补丁也从3.5.3的几KB增加到了几百KB,从服务支持
2021-06-16 18:43:37
1356
原创 开启MultiDex仍然报65535方法数的一种情况的解决
最近项目打Release包的时候,爆出了65535的错误,之前一直是正常的.在网上搜索,都是叫开MultiDex,现在的正经项目,没有几个没开了的吧?我的肯定是开了的.但是MainDex还是爆了.我的maindexlist.txt也只keep了最主要的类:com/longforu/xx/SmAppProxy.class //TinkerApplication代理类androidx/multidex/MultiDex.classretrofit2/http/PATCH.class有一篇文章讲到了这个
2021-05-31 10:57:50
310
2
原创 Kotlin Coroutine的超时处理
这2天在跟着kotlin的官方文档练习阅读,复习协程.看到Cancellation and timeouts的时候,觉得自己之前的超时处理逻辑如果切换成withTimeout将会更加简洁.果然官方教程是最好的教程.先看看我之前的实现: val timeOut = lifecycleScope.async { delay(40 * 1000) LogUtils.e(TAG, "上传超时 onTimeout: 45s") false } val uploadResult =
2021-03-30 16:34:18
3764
原创 Kotlin中groupBy和groupingBy使用中的对比
今天在看Kotlin的Coroutines官方文档练英文的时候,它有个Hands-on,在里面要实现一个aggregate的功能,先来看看我的初版实现:fun List<User>.aggregate(): List<User> { val map = this.groupBy { it.login } val result = ArrayList<User>(map.keys.size) for (login in map.keys) {
2021-03-25 18:56:51
3990
原创 Alfred Workflow实现scrcpy快捷启动
Alfred是MacOS上一个非常强大的效率工具,通过它可以实现很多方便的快捷功能。scrcpy是一款开源的安卓设备投屏操作软件,质量很好且免费。但是在存在多个设备的情况下使用不是很方便,需要先运行adb devices查看设备对应的序列号,复制后再用scrcpy -s 序列号才能启动对应的设备,有了Alfred就方便很多了,可以使用它的Workflow功能很方便的实现多个设备的选择和scrcpy的启动。网上的相关文章不多,讲也没有讲得很清楚,随便记录一下。实现Workflow选择 script fil
2020-12-28 14:51:36
315
原创 单盘黑群晖更换硬盘实操记录
去年在咸鱼上买了个游娱宝盒的黑群晖,装着以前笔记本用的2.5"2T的盘在跑.最近想要一个移动硬盘,网上看来看去都不便宜,后来灵机一动,干嘛不买一个大一点的3.5"的盘换下这个2.5"的盘,再买个盒子.不就移动硬盘也有了,NAS空间也大了么?简直一箭双雕.硬盘买回来,怎么换是个问题,毕竟之前NAS上的数据都还想要的.期间根据网上的教程,尝试多次,耗时几天,方勉强成功,坑是非常的多.记录一下:过程新旧盘对拷,新盘是4T的,比旧盘大,要是Windows的话,直接用ghost硬盘对拷就行了,但是群晖是Li
2020-11-23 16:39:56
14942
原创 Android自定义键盘的几个小点
最近的项目中需要输入字母,且环境有一些特殊的要求:不能跳出当前APP只需输入大写字母和数字一般的第三方输入法都有跳出当前APP的路径,这是不允许存在的,机器7.0自带的键盘也非常的不好用,复杂而且不符合国人习惯.项目之前是用RecycleView在应用界面内实现输入数字,避免调起系统舒服法来解决上面的这些问题的,但是现在需要输入字母,那个方案就不行了,而且占用较大的界面面积,改版后需要弹出键盘输入.势必要改了.之前的项目因为有的第三方输入法在使用蓝牙设备输入的时候会自动转成拼音,导致输入错误,所
2020-11-02 16:55:25
361
原创 Android Drawable Preview插件适配Android Studio4.1版发布
Android Drawable Preview是一个在安卓开发中非常有用的AS/IDEA插件,可以将drawable资源文件的icon替换成内容的预览图,达到不需要打开资源文件,快速预览内容的功能,实在是非常的方便快捷,让开发工作更加的愉悦.使用之前:使用之后:便利程度自然不用多说,是我一直使用的重要插件之一.可是好景不长,前几天AS4.1正式版发布了,虽然新功能我不一定都用到,但是就算为了intellij本台的更新,所以我向来都是用最新版AS的,升级后一些插件报错了:Plugin "K
2020-10-16 09:57:48
2160
11
原创 小米手环5表盘bin文件解包修改
工具附在文末.下载的bin包用工具解开查看解压出来的terminal_v.1.3-324342-7b5171263c.json文件,{ "Background": { "Image": { "X": 0, "Y": 0, "ImageIndex": 0 //背景序号 }, "Preview1": { "X": 18, "Y": 17, "ImageIndex": 11 }, "P
2020-09-16 18:33:10
17729
4
原创 出现Default Activity not found的一种情况的解决
大家在用Android Studio的时候可能都遇到过一种情况,点击运行app,as提示"Default Activity not found",出现这种情况的原因是多种多样的,有时候能在as的报错中找到相关信息,有时候却找不到,让人很烦恼.一时找不到原因的情况下,可以按照下面的方法进行尝试.解决尝试有的时候clean项目重新build就能解决了,有时候却不能.点击 File ->Invalidate Caches /Restart清除个人目录下的项目缓存,或则直接删除C:\Users\
2020-07-22 18:04:22
1024
原创 Mars Android 接入实践 Note
起源最近的一个项目中,需要接收服务器的消息推送.为了保证消息的及时有效性,自建长连接应该是比较保险的.百度后看中了mars这个库,大厂出品,微信验证,demo齐全,star很多.貌似是没问题的了.但是在后续的过程中,也遇到了一些问题.水水博客,记录一下.接入简单的demo接入尝试的话,按照官方说明接入,差不多就能跑起来了.我是直接clone整个项目,让后导入mars-wrapper这个module的.module比较完善,实现了独立进程的service,通过AIDL实现进程间通信.demo中的服务端
2020-06-17 17:58:57
858
原创 Kotlin使用const val的一个注意点
companion object { const val INIT_PAGE_INDEX = "0" const val DEFAULT_PAGE_SIZE = 10 const val PAGE_INDEX_KEY = "pageNum" const val PAGE_SIZE_KEY = "pageSize" ...
2020-02-11 11:08:36
980
原创 win10定时切换壁纸,不喜欢的删除到回收站
最近在网上爬了一些漂亮小姐姐做壁纸,虽然大多都是喜欢的,难免也有不喜欢的,都过一遍工作量也太大了,我就想有没有方法,在用文件夹幻灯片自动切换壁纸的时候,遇到不喜欢的可以删掉呢?这样用上一段时间,剩下的就都是我的喜欢的了,可是除了学C的时候,后来基本都没有写过exe程序了,也没有做过windows的相关开发,api调用也是完全懵逼的.后来经过一番百度和cv大发,终于用c#实现了.目的勉强达到,还是有...
2019-11-09 18:40:12
620
原创 RxJava使用filter时如何知道是否所有的item都被过滤了?
有时候会使用rxJava的filter操作符来过滤重复的数据,用起来非常的方便,返回true的元素会通过,返回false的元素则会被丢弃.但是存在这样一种情况,如果所有的元素都被过滤掉了,丢弃了,后续subscribe的onNext()也不会被调用.这个时候我们要如何得知呢?大多数情况下都不需要关心,但是在有的情况下我们又需要知道,是不是所有的元素都被过滤了.filter操作符本身并没有提供这样...
2019-10-08 11:48:18
359
原创 关于zBar部分手机扫描空白处识别出条码的问题
最近的项目中使用到自己编译的zBar进行条码识别,在自己的手机上一直都没有问题,但是前面有一部小米MAX2s中出现了手机放着不动扫描空白出,尽然识别出了条码的bug.因为这个bug在别的手机上还没有遇到过,而且也比较诡异,未做处理,但是最近反馈说這样的手机也有一些包括小米8.必须要进行处理了.识别流程YESNO摄像头重复获取图像zBar识别识别出条码?处理插入数据库在摄像头重复的回调中,把图...
2019-08-15 16:07:57
552
原创 一个混淆后报NullPointerException的问题
最近的项目中需要集成一些扫描枪厂家的第三方SDK,前面都还算顺利,今天集成的这一家,开始也没有问题,但是开启了混淆后,会报NullPointerException,提示sdk包中的类找不到.问题比较少见,比较意外,多方尝试后才得到解决.背后的原理也还没有理清,记录备查.问题表现在一个有扫描功能的抽象类中,实例化一个sdk中的类,非常简单.scanManager = ScanManager()...
2019-07-29 16:28:44
1333
2
原创 在群晖的docker中使用auska-docker-baidupcs出现下载文件错误, mkdir /mnt/: permission denied
今天在群晖的docker中安装了auska-docker-baidupcs之后下载文件无效,查看日志:发现是权限拒绝,是一个很简单的小问题。但是一点linux基础都没有的童鞋还是束手无策的。在网上百度也没有找到有用的信息。修改挂载目录什么的也无效。我这个时候呢,按照过去的经验就想连接上容器去看一下。正好旁边这里就支持终端。按图操作,可以看到呢,我这里的权限已经是全给的了,之前不能下载呢就...
2019-06-10 23:11:05
11420
2
原创 在DialogFragment中使用EditText,onDismiss时关闭键盘无效的问题
最近的项目要实现一个评论框,点击某处触发弹出软键盘,在软键盘上面显示EditText输入评论内容,还有2点需求点击空白处关闭输入框并收起软键盘。发送完评论后也关闭输入框并收起软键盘。在使用DialogFragment中创建Dialog实现了评论框后,2可以正常实现,但是1存在输入框关闭了但是软键盘没有收起的情况。开始以为问题在android.view.inputmethod.InputM...
2019-05-27 22:35:30
3465
9
原创 实现PagedListAdapter中Item动态增删的一种方法
最近在项目中延用了Jetpack库中的一些库。Lifecycles、LiveData、ViewModel等,再尝试了Paging库流程的官方Demo之后,这一次也引入了项目之中。列表加载的体验提高了很多。但是在这一过程中也发现了一些问题,最主要的是不同于传统的RecycleView.adapter,PagedListAdapter不支持对已加载列表的灵活增删。这个在实际的开发中是一个很麻烦的问题,...
2019-05-23 23:16:15
3902
1
原创 编辑jar包中class文件的几种方式
在日常的开发中经常使用到第三方一些库,这些库可能提供gradle仓库的依赖,也可能提供jar包,有时候为了我们的一些自定义操作,需要修改这些jar包中的代码.这个时候该怎么做呢?我所了解的可以修改jar中class的几种方式aop编程,使用aop框架hook想要修改的class的方法,自己实现这个方法或者额外的执行一些代码,但既然是aop,aop的目的也不是這样的,aop适合于面向切面的,多...
2019-04-10 21:57:23
14758
原创 如何使用Android Studio | IDEA合并gitHub的pull request
有时候我们使用gitHub上面的一些开源库,需要对库的代码进行一些修改,以符合我们自己的要求,但是如果原作者后续有了更新,我们如何让我们fork的仓库也获得这些更新呢?这个时候就需要我们new pull request,合并更新的代码.new pull request用途我们fork原作者的仓库,修改后想把这些修改推送给原作者,合并到他的仓库中,让大家都来使用你的代码,成为原作者仓库的贡献...
2019-04-10 18:41:33
1389
原创 简单的LRU队列kotlin实现
最近的项目中貌似需要一个這样的队列,想着实现了一下,后来又没有使用,就没有进行严格的测试.import java.util.*import kotlin.concurrent.thread/** * @describe 最近最少使用队列, 只能使用這里override的api哦 * @author XQ Yang * @date 4/3/2019 3:09 PM */clas...
2019-04-03 19:39:44
1019
原创 RxJava在toList()后subscribe()不执行的问题
今天在项目中遇到一个问题:需要遍历一个list在经过2次异步调用修改list中的一些值之后,刷新adapter,通知数据修改.略显复杂,一般的同步修改倒是没有什么了,但是需要进行2次异步调用修改,而且要跳过一些item,还要进行类型转换.最后还要根据异步调用返回的值进行排序,这个就略显复杂了.项目中引入了RxJava2,近几年的项目也一直都在用,今天面临的这种数据流的操作,最合适的也就是它了.遍...
2019-03-28 23:21:20
2852
2
mars_android_sdk-1.3.0-sm.aar
2020-08-11
zebra移动打印系统CPCL 编程手册.pdf
2020-07-24
201906Zbar最新版完整安卓demo工程包含so.7z
2019-06-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人