- 博客(11)
- 收藏
- 关注
原创 解决Android EditText多行文本与NestedScrollView滑动冲突
当用户在EditText区域滑动时,NestedScrollView会首先接收到滑动事件,并认为这是对它自身的滚动操作,从而优先处理该事件,导致EditText无法获取到滑动事件,也就无法实现内部滚动。此外,EditText在处理触摸事件时,没有正确地与NestedScrollView进行协调,导致无法告知NestedScrollView自己是否需要滚动,从而使得父容器错误地拦截了滑动事件。这种方式通过在代码中动态设置触摸监听器,同样实现了对触摸事件的控制,达到了解决滑动冲突的目的。
2025-04-08 15:14:39
654
原创 Android 音频开发的原理、实现与优化:从播放到录制的全面指南
Android 音频开发涵盖了从基本的音频播放与录制到复杂的音频处理和优化多个方面。通过深入了解音频组件的原理和使用方法,结合一些常见的优化技巧,开发者可以打造高效、稳定的音频功能,提升应用的用户体验。
2025-03-24 15:47:15
559
原创 《Kotlin协程与Java线程对比:原理、作用域及最佳实践》
随着Kotlin在Android和服务端开发中的普及,协程(Coroutines)已成为编写并发代码的主流工具。本文将从协程的底层原理、作用域管理以及与Java线程的区别入手,详细解析协程的优势,并通过示例展示其使用场景。它通过挂起和恢复的机制,提供了轻量、灵活且高效的并发处理方式,并且能够有效简化异步代码的编写。理解协程的原理、作用域以及与Java线程的区别,有助于在实际项目中更好地利用Kotlin协程的强大功能。Kotlin中的协程与Java中的线程都可以用于并发编程,但它们有显著的区别。
2024-10-29 14:23:40
1779
原创 深入理解Kotlin中的协程机制:从入门到进阶
本篇文章将带你深入理解Kotlin中的协程机制,帮助你从入门到进阶掌握协程的使用,并在实际开发中更加高效地处理异步任务。是Kotlin的一种轻量级并发工具,它和传统的线程不同,它不依赖操作系统的线程调度,而是在用户态实现。协程可以挂起和恢复执行,在不阻塞线程的情况下完成异步任务,从而提高程序的执行效率。Kotlin协程允许指定协程运行的上下文和调度器,以控制协程的执行环境。在协程中应尽量遵循结构化并发的原则,保证协程的创建和生命周期能够被清晰管理。首先,我们来介绍Kotlin协程的基本用法。
2024-10-29 10:15:54
677
原创 Kotlin 高阶函数:深入应用场景探索
在Kotlin中,高阶函数是可以接受函数作为参数或返回一个函数的函数。它们使得函数能够像变量一样传递,使编程更具表达性和简洁性。在上面的例子中,函数接受一个predicate函数作为参数,并使用它来过滤列表中的元素。predicate函数是一个接受类型为T的参数并返回Boolean的函数。通过高阶函数可以自定义控制流,模拟其他编程语言的控制结构或实现特殊的逻辑。try {action()return // 如果执行成功,直接返回println("尝试失败,第${it + 1}次重试...")
2024-10-25 10:36:02
930
原创 Kotlin高阶函数基础详解
Kotlin的高阶函数为开发者提供了强大的工具来简化代码编写,提高可读性。与Java相比,Kotlin的语法更为简洁,更适合函数式编程。尽管高阶函数存在一定的性能开销,合理使用内联函数可以优化性能。
2024-10-21 10:03:21
481
原创 同行者科技安卓岗位笔试题答案分析
约瑟夫问题:这是经典的数学问题,可以用递归或迭代的方法求解。f(n, m)表示n个人时的幸存者编号,。可以用一个循环的方法,从1个人开始逐步计算幸存者的编号。初始化幸存者编号为0。从2个人开始,逐步计算当前情况下的幸存者编号。最终返回最后剩下的人的编号。return result + 1 // 返回最终的幸存者编号val n = 4val m = 3println("最后留下的人的编号是: ${josephus(n, m)}") // 输出: 2。
2024-10-10 23:20:41
782
原创 如何用okhttp3进行简单的网络库封装
创建一个名为HttpRequest的类,该类包含发起网络请求的方法。可以通过构造函数传递url、请求方法(GET或POST)、请求头和请求体等参数。在Android中进行网络请求需要使用HttpURLConnection或者OkHttp库。为了实现HTTPS请求,我们需要使用OkHttp库,并创建一个名为Https的类,该类使用OkHttp的方法发起网络请求。创建一个名为Http的类,该类包含发送HTTP请求的方法。该类使用HttpRequest类中的send方法发起网络请求。
2023-02-17 17:57:59
439
原创 如何用 Python 实现反编译混淆后的APK
apktool:这也是一个开源工具,可以反编译 APK 文件,并提供 Smali 代码。使用 apktool 可以将 Smali 代码转换为 Java 代码,进而还原混淆前的代码。JADX:这是一个开源工具,可以将 APK 文件转换为 Java 代码,包括混淆后的代码。需要注意的是,尽管使用这些工具可以还原 APK 混淆前的代码,但由于混淆后的代码本身已经被修改和优化,因此还原后的代码可能与原始代码略有不同,需要根据实际情况进行修改和调整。安装并配置好反编译工具,比如 jadx 和 apktool。
2023-02-17 17:46:30
1364
原创 如何用Python实现两个apk合并
需要注意的是,由于APK文件较大,可能需要花费一定的时间来获取文件大小,尤其是当两个APK文件都很大时。此外,文件大小并不一定反映文件的复杂度或性能,因此在比较APK文件时,还需要考虑其他因素,例如应用程序的功能,性能等。如果需要合并的资源很多,则可能需要考虑更复杂的解决方案,例如使用差分包等技术来减少合并后的APK文件大小。以下是一个简单的Python代码示例,用于合并两个APK文件,其中“base.apk”是原始APK文件,而“patch.apk”是需要合并的资源文件。函数可以用于获取文件的大小。
2023-02-17 17:19:19
1854
转载 关于Android内存泄露问题
最近在做项目的时候遇到一个常见的问题就是Activity中Context导致的内存泄露、折腾死人了、最终找到一些方法可以具体定位到问题关键从而能让你能根据问题入手,好过自己在那里盲目找问题,找到了问题才能更好解决问题,废话不多说。。。。 注:本文是看了其它大神的博客结合起来的加上自己的一些经验分享(本人使用的是android studio)首先我们先借助LeakCanary这个库检测出项目内存溢出
2015-11-12 18:20:39
519
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人