- 博客(191)
- 资源 (55)
- 收藏
- 关注

原创 Android 查看项目的依赖信息以及某个版本的组件是哪个依赖库里的正确姿势
Android查看项目依赖信息以及哪个版本的库是被谁依赖的正确姿势。例如项目中明明指定的kt版本是1.6.21,为何最终依赖的版本变成了1.7.10?怎么能知道是哪个库依赖了1.7.10版本的kt呢?项目中依赖的某个库,它里面的依赖了哪些东西呢,版本又是什么样的?看完这篇博客可以帮助你快速找出依赖相关的问题。
2022-11-14 21:30:00
6324
6

原创 手把手教你在Java后端使用bsdiff实现增量更新
之前写过一篇博客是在Android上使用bsdiff实现增量更新的功能. 本篇博客来看一看Java 后端的bsdiff增量更新是如何实现的。顺便看一下后端JNI的实现过程,怎么把C 代码编译成linux上需要的so文件等
2021-12-18 15:18:19
4640
4

原创 kotlin协程async await的异常踩坑以及异常处理的正确姿势
使用Kotlin来做一些异步操作相信大家都非常熟悉了,特别是结合Jetpack的一些组件,使得我们在Android开发中写异步任务非常的方便。但是,关于在使用协程的时候,个人觉得异常处理这一块是相对来讲是需要花时间去了解的地方,因为在使用过程中还是会遇到一些小坑的,这里记录下之前遇到的坑。踩一个使用async await时异常处理的坑kotlin 协程的异常处理官方文档我们先来看官方的示例:可以看到,示例代码中在对 async 开启的协程进行异常捕获是在调用 await 时。看打印结果也确实是捕
2021-10-30 15:01:40
6389
4

原创 Retrofit+kotlin Coroutines(协程)+mvvm(Jetpack架构组件)实现更简洁的网络请求
前言Retrofit发布的2.6.0版本内部支持了kotlin协程中的挂起(suspend)修饰符,这就意味着我们可以跟方便的用Retrofit结合kotlin协程来实现网络请求了。之前我们都是使用Rxjava2+Retrofit实现网络请求的功能,然后加入了AutoDispose来解决自动解绑的问题。https://yuzhiqiang.blog.csdn.net/article/det...
2019-09-20 12:21:27
21773
22

原创 Android使用协程(Coroutine)优雅的处理多个接口同时请求(网络并发请求)
Android中同时请求多个网络接口我们在开发过程中,很可能会遇到这样的需求,一个页面中需要同时请求好几个接口。我在之前写过一篇关于 高德逆地理编码接口返回数据格式不统一以及百度逆地理编码接口返回数据解析失败的踩坑记录 这篇文章,我当时的需求是要结合高德和百度两个接口,合并成一个我想要的数据。在文章中,我们使用了Rxjava的zip操作符来处理的两个接口同时请求的逻辑。大概代码如下: ...
2019-09-19 15:02:47
34016
4

原创 Android结合Retrofit实现统一加解密处理(Get、Post、Delete、Put)
Android中对接口进行统一加密在之前的博客中我们介绍了 加密方案的选择 和 Android中加解密需要注意的地方本篇博客我们主要来看一下Android中加密的注意事项。在开发过程中,接口是很多的,我们不可能分别对每个接口的请求数据都进行加密,这样写起来以及后期维护是非常麻烦的,所以,肯定要是统一处理的还有我们常用的Get、Post、Delete、Put请求他们的请求数据存放位置是不一...
2019-05-13 11:38:42
9359
12

原创 Flutter中的异步(Future、async、await、FutureBuilder)和 网络请求
Flutter 异步编程在Android开发中,异步编程是必不可少的,比如网络请求、IO操作等很多都是异步操作,而在Android原生中,有主线程和工作线程的概念,耗时操作都是要放到工作线程中的,ui要在主线程中更新,因此,原生Android开发中对线程的处理是必不可少的,幸运的是,一些第三方库例如Rxjava、RxAndroid让我们的线程切换起来十分的方便。但是Flutter是基于Datt...
2019-04-10 21:46:38
58451
8

原创 Android/Java完美使用RSA2结合AES对数据进行加解密(兼容RSA2 SHA256WithRSA,可使用2048长度的秘钥,AES Android各版本通用)
上一篇博客数据加解密方案选择中我们介绍了加密的几个方案选择,其中,最后一个方案使用RSA集合AES实现双向认证是目前来讲最安全的,也是含盖了前面几个方案的知识点。本篇博客我们就以最后一个方案为准,来进行代码实战,并记录一下踩过的坑。Android中的AES加密(兼容所有版本)在Android中使用AES加密的时,如果你从网上找的工具类,在Java环境下运行是没有问题的,但是当你放到手机或者...
2019-03-19 15:07:32
12927
4

原创 网络传输数据加解密方案选择(RSA+AES)
为什么要对数据加密理由很简单,为了安全。因为之前一直在赶项目,没有对传输的数据做处理,导致我这边通过抓包软件直接能看到我请求发的是什么数据,服务端给我返回的数据是什么。而且可以通过抓包软件修改响应数据返回给客户端,这样一来,客户端实际上接收到的数据并不是服务端给我的源数据,而是被第三者修改过的数据,如此一来,数据传输的安全就很有必要了。那如何保证数据传输的安全呢?总体要做到一下两点1....
2019-03-18 17:43:44
12649
5

原创 Flutter中MainAxisAlignment和CrossAxisAlignment详解
Flutter MainAxisAlignment和CrossAxisAlignment详解
2019-01-16 15:33:07
61946
6

原创 Flutter基础Widget之按钮(RaisedButton、FlatButton、OutlineButton,IconButton)
Flutter中给我们预先定义好了一些按钮控件给我们用,常用的按钮如下RaisedButton :凸起的按钮,其实就是Android中的Material Design风格的Button ,继承自MaterialButtonFlatButton :扁平化的按钮,继承自MaterialButtonOutlineButton :带边框的按钮,继承自MaterialButtonIconB...
2018-12-17 16:52:21
85798
8

原创 AutoDispose代替RxLifecycle优雅的解决RxJava内存泄漏问题
使用AutoDispose代替RxLifecycle优雅的解决RxJava产生的内存泄漏问题。
2018-07-16 16:49:03
14091
2

原创 Android多模块混淆、多module混淆、多library混淆的正确姿势
混淆的文章其实网上也很多,介绍的都很好,但是关于多个module的混淆规则就不是这么详细,有的也是错误的,经过了2天的多次实践以及查阅资料(多次打包和反编译看源码,很费时间啊),终于达到了我的目的。下面来总结一下。也希望能帮到需要的同学。
2018-06-13 11:47:20
35214
13

原创 Android反编译工具jadx详细使用方法以及混淆和加固的对比
反编译也不是什么新鲜的东西了。但是为了保护我们自己项目的代码,我们还是要通过反编译工具来检测一下我们的代码是否安全。 本文我们来使用一个开源的工具jadx来实现对apk文件的反编译。1.下载安装jadx jadx开源在github上了,我们可以直接去github上下载压缩包即可。这里我的环境是windows10。 jadx github下载地址打开连接,找到最新版本,直接下载zip文...
2018-06-13 10:28:07
16754
1

原创 Android超方便 集成 Zxing实现扫一扫,闪光灯,生成二维码图片,解析二维码(条码)等功能
之前我写过一篇博客是关于如何将zxing集成到Android Studio中,以及简单的实现扫一扫功能。 详情请看:Android Studio集成Zxing扫一扫但是,上面那篇博客只有有一个扫一扫功能,而且在低分辨率手机上会出现变形的问题。扫描速度也比较慢,功能不是很全,没有闪光灯,生成二维码,解析二维码图片,解析条码图片等。 这几天抽了点时间,将之前的代码完善了一下,主要是修复了一些b...
2017-10-20 09:42:01
77281
264

原创 com.android.support版本冲突的解决办法
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes 当我们使用android studio添加一些第三方的依赖库时,很可能会提示上面这个错误。大致意思就是com.android.support的包版本号要
2017-10-12 14:49:59
61842
21
原创 kotlin协程之CoroutineScope 与 CoroutineContext 详解
CoroutineScope 与 CoroutineContext 详解
2025-03-08 17:16:36
1050
原创 腾讯地图SDK 手势失效或冲突的解决办法
由于高德地图sdk开始涨价割韭菜了,因此,我司在降本增效的大背景下,需要把高德地图换成腾讯地图。在更换sdk过程中,踩了一些关于地图手势事件的坑,这里记录下,以便于帮助给遇到同样问题的同学一个思路。
2024-10-24 16:49:40
909
1
原创 Kotlin协程之协程的结构化详解
协程是存在父子关系的,父协程可以有多个子协程,子协程也可以有多个子协程,形成一个树形结构。父子关系是通过Job对象的parent和children来维护的,Job对象是确定父子关系的关键。正常在一个协程中直接启动子协程,这样默认就是父子关系,方便管理。尽量不要在一个协程中启动不是它的子协程的协程,这样会导致协程的父子关系混乱,不利于协程的管理。//创建一个协程作用域= null= nullprintln("父协程")${job")
2024-09-11 22:11:45
947
1
原创 kotlin协程之runBlocking
上一篇:Callback转挂起函数文章中,介绍了在Kotlin协程中如何把传统的回调风格的异步操作转换为协程风格的挂起函数,这个在开发过程中是非常常用的,主要用于把 callback 风格的代码转换为协程中的挂起函数,以便于我们在协程环境中调用。但是,有时候我们也会遇到一些特殊的情况,比如我们需要在线程中调用已存在的协程代码,并且希望这个线程能够阻塞等待协程执行完毕,这时候就需要用到函数了。的核心作用是阻塞当前线程并等待协程执行完毕,主要用于在线程中调用协程代码并且希望阻塞等待协程执行完毕的场景中。
2024-08-13 14:18:30
469
原创 kotlin 协程之Callback转挂起函数
在 Kotlin 协程中可以通过挂起函数来实现异步操作的串行化,但是在日常开发场景中,大部分项目都是java和kotlin并存的,老旧的Java代码除非有需求,否则不会轻易改动重构。即使项目是纯kotlin开发的,也会有一些java代码实现的三方库,因此,我们很难规避掉所有的 Callback,而且Callback是一种非常常见的设计模式,我们经常会在项目中看到。当然,在协程中,我们也可以使用Callback。
2024-06-25 08:00:00
788
原创 Kotlin 协程真的轻量吗?
本文探讨了Kotlin协程是否真的轻量,通过对比协程和线程的实现,指出协程在开发使用上的轻量性,如非阻塞式设计、简洁的代码和自动线程管理。然而,从底层执行原理来看,协程仍然依赖于线程,因此轻量性主要体现在开发者体验上。
2024-06-12 17:00:50
843
原创 kotlin 协程之初识挂起函数
本文介绍了Kotlin协程中的挂起函数,包括挂起函数的概念、自定义方法以及挂起和恢复的本质。挂起函数通过`suspend`关键字标识,允许在不阻塞线程的情况下进行异步操作。挂起函数只能在协程或另一挂起函数中调用。文章通过代码示例和反编译分析揭示了挂起函数如何在后台执行并恢复执行的机制。
2024-06-12 16:56:10
712
原创 Kotlin 协程:从基础概念到开发实践
上一篇文章深入理解Android多线程开发:场景应用与解决方案解析针对Android开发中的多线程应用场景和相应的解决方案做了一个梳理。资源复用和优化切线程任务编排并结合示例说明了Kotlin协程在处理上述问题时的优势。Kotlin协程自从2018年底成为kotlin语言的正式特性后,到现在已经5个年头了。而kotlin这门语言也在最近正式推出了2.0版本,带来了更好的支持多平台开发以及更快的编译速度。我自己算是比较早就开始尝试使用协程来解决开发中的各种需求。
2024-06-11 09:32:19
880
原创 深入理解Android多线程开发:场景应用与解决方案解析
在专栏之前的文章中,我们了解了并发、线程、线程安全、线程池等多线程开发的概念。本篇文章,我们来梳理一下在Android开发中我们面临的多线程开发中常见的应用场景和解决方案。随着技术的飞速发展,我们在处理多线程相关的业务场景时有了更多选择和更为简洁的解决方案。从早期的线程, Handler,到后来的 RxJava,再到现在的 Kotlin协程,每一代技术都在不断提升我们的开发效率和代码质量。及时更新项目的技术栈,采用新的库和框架,能够显著提高我们的开发效率,同时降低出错的成本。
2024-06-09 11:45:00
515
原创 ReactNative项目构建分析与思考之 cli-config
前言在上一篇 native_modules.gradle分析 文章中,我们对三方库是如何依赖到Android项目有了一个大致的了解。在 native_modules.gradle 的 getReactNativeConfig方法中,执行了一个node命令,然后得到了非常关键的 reactNativeConfigOutput后续的流程才能正常走下去。String[] reactNativeConfigCommand = ["node", cliPath, "config"]def reactNa
2024-03-18 08:00:00
1295
原创 ReactNative项目构建分析与思考之native_modules.gradle
用了这么久的RN,你真的清楚为什么前端直接执行一个add命令就可以调用到Native原生的功能呢?是怎么做到的呢?来一起看看吧。
2024-03-12 08:45:00
1794
原创 ReactNative项目构建分析与思考之react-native-gradle-plugin
用了这么久的React Native,你真的了解RN项目的构建流程吗?本文剖析了RN项目组织结构、Gradle插件的作用以及RN是如何组织项目的。通过一步步的分析,揭秘了RN项目构建背后的奥秘,为你提供了前所未有的透彻见解。无论你是Android开发者还是React Native爱好者,本文定能让你大开眼界,构建出更加优质的RN应用。快来一探RN构建流程的独门秘籍吧!CopyRetry
2024-03-09 17:54:10
3178
2
原创 遗失的源代码之回归之路的探索与实践
代码丢了?别怕,我有拯救计划!揭秘代码失踪背后的原因,一一解锁组件发布管理的规矩。动用小脑瓜,运用高级技能,分析、反编译、抽象语法树对比,妙手回春地还原代码。这篇博客通俗易懂,让你在轻松幽默中领略代码失而复得的惊艳过程。放下烦恼,跟着我一起搞定源码丢失的难题,笑对代码还原的全新冒险!
2024-02-03 15:30:00
1523
原创 HarmonyOS NEXT:技术革新与生态挑战的交汇点
OpenHarmony和HarmonyOS NEXT 面临的挑战如生态建设和市场接受度,OpenHarmony的开源特性及HarmonyOS的发展节点和特性。希望HarmonyOS NEXT能够做大做强,创造辉煌!
2023-12-16 17:57:33
6339
原创 Cordova系列之化繁为简:打造全场景适用的Cordova组件
一个基于Cordova封装的全场景组件,使用简单,在保留Cordova原有功能的基础上突破了必须继承CordovaActivity的限制。支持在Fragment中使用,还能能作为自定义view使用,提供关键节点的事件回调,可快速基于Cordova实现业务需求。
2023-11-10 22:40:02
9302
2
原创 大佬,一款小而美的Application组件,了解一下
Android开发过程中,Application类的角色不容忽视。它不仅是程序启动的入口,同时也代表着整个应用程序的生命周期。初始化第三方库的需求容易理解,因为一些第三方库需要全局的Application对象来执行某些操作。这就需要我们遵循第三方库提供的初始化代码,虽然这个过程有些麻烦。假如你自己有一些开源组件,或者公司内部的组件也需要Application对象或Context,那么你可以约定一个规则,让所有人使用同一个Application实例。
2023-07-11 22:30:00
3457
原创 新一代版本依赖管理Vesion Catalog的探索与实践
新一代版本依赖管理Version Catalog的使用与远程发布,结合Include Build更优雅的简化依赖构建
2023-07-02 22:22:18
4873
2
产物对比工具,用于对比aar或者jar包之间的资源和源码的差异信息,快速找出两个版本间的差异
2024-02-02
Integral_process_demo.rar
2021-04-04
openssl-1.0.2q-x64_86-win64.rar
2020-04-20
CoroutineRetofitMvvm.rar
2019-09-20
MvvmLogin.rar
2019-08-08
Android Socket连接(心跳检测,断线重连,状态监测等)新资源包
2019-07-02
Flutter路由与导航示例,页面跳转和传值传参,接收页面返回数据
2019-04-15
Flutter通过FutureBuilder实现异步请求网络数据并显示加载中Demo
2019-04-11
Flutter路由与导航示例,包含页面跳转和传值传参,接收页面返回数据等功能
2019-04-09
完美使用RSA2结合AES对数据进行加密(兼容RSA2,可使用2048长度的秘钥,AES Android各版本通用)
2019-03-19
Flutter选择相册图片和拍照示例
2019-03-08
Flutter 底部导航栏示例
2019-03-04
扫一扫demo安装包,速度快、闪光灯,解析二维码图片等功能
2019-01-11
Flutter默认项目代码详解,注释超详细
2018-12-11
Flutter SDK 1.0.0发布版
2018-12-10
Android Netty的使用(结合RxJava)
2018-11-23
Android多渠道打包及资源混淆
2018-10-24
kotlin版的字母索引控件,性能好
2018-09-21
javaweb实现的访问权限控制示例
2018-07-31
Java Web使用Ajax进行网络请求和数据交互demo
2018-07-30
cookie和session示例
2018-07-27
使用Servlet实现的注册登录示例,包含文件上传,注释超级详细
2018-07-26
AutoDispose优雅的解决RxJava产生的内存泄漏问题
2018-07-17
MVC和MVP深度对比
2018-01-17
zxingDemo.apk
2017-10-23
zxing扫一扫,集成了闪光灯,选图片解析,生成二维码等功能,一句话依赖即可使用
2017-10-20
zxing扫一扫,集成了闪光灯,选图片解析,生成二维码等功能
2017-10-20
Android防止service多次执行startCommand
2017-10-12
android全盘扫面指定后缀名文件并动态显示到列表上demo
2017-09-30
Android Socket连接(心跳检测,断线重连,状态监测等)
2017-09-27
在Fragment监听返回键
2017-08-30
Android WebView 报 Not allowed to load local resource错误的解决办法
2017-07-28
清除fragment页面数据(重新加载布局)
2017-07-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人