随笔分类 -  Android

摘要:安装安卓系统应用 adb disable-verity adb reboot adb root adb remount adb push D:\bt_stack.conf /etc/bluetooth/ 开启WiFi调试 暂时开启,查看IP pc: ifconfig eth0 mobile: ifc 阅读全文
posted @ 2024-12-06 16:57 懒懒初阳 阅读(201) 评论(0) 推荐(0)
摘要:Android ANR的trace文件基本信息解读 示例 "main" prio=5 tid=1 Native | group="main" sCount=0 dsCount=0 flags=0 obj=0x727c02f8 self=0xb400007a2f210800 | sysTid=339 阅读全文
posted @ 2023-12-11 17:02 懒懒初阳 阅读(1058) 评论(0) 推荐(0)
摘要:设计模式 1. 工厂模式 工厂模式就像一个生产线,它能够创建出不同种类的产品。它的使用场景是当需要创建一些类的对象时,可以将这些类放在工厂中统一管理,通过工厂方法来创建对象。 优点:能够统一管理对象的创建,降低了代码的耦合性,方便扩展和维护。 缺点:需要额外的工厂类来创建对象,增加了代码量。 // 阅读全文
posted @ 2023-04-12 16:26 懒懒初阳 阅读(34) 评论(0) 推荐(0)
摘要:OkHttp默认使用长连接(HTTP Keep-Alive)来复用TCP连接,以减少多次握手建立连接的时间和资源浪费。 常用方法如下: 1.创建OkHttpClient对象 OkHttpClient client = new OkHttpClient(); 2.创建Request对象 Request 阅读全文
posted @ 2023-04-11 15:32 懒懒初阳 阅读(393) 评论(0) 推荐(0)
摘要:kotlin定义泛型类 Kotlin中定义泛型类可以使用以下语法: kotlin class MyClass<T>(vararg items: T) { private val list = items.toMutableList() fun addItem(item: T) { list.add( 阅读全文
posted @ 2023-04-01 11:36 懒懒初阳 阅读(107) 评论(0) 推荐(0)
摘要:Kotlin中 data/object/sealed/enum class用途 在Kotlin中,data、object、sealed和enum class都是用于创建不同类型的类. data class:用于创建只包含数据的类,这种类通常用于表示一些数据结构,比如一条消息、一条记录等。使用data 阅读全文
posted @ 2023-03-30 23:15 懒懒初阳 阅读(288) 评论(0) 推荐(0)
摘要:JNI开发中静态和动态注册 JNI(Java Native Interface)是Java平台提供的一种机制,用于在Java程序中调用本地代码(例如C/C++代码)。 JNI中涉及两种类型的方法注册:静态注册和动态注册。 静态注册是指将本地方法的名称和实现直接映射到Java类的静态方法。这可以通过在 阅读全文
posted @ 2023-03-29 00:01 懒懒初阳 阅读(239) 评论(0) 推荐(0)
摘要:单元测试 Android开发中如何进行单元测试和UI测试? 在 Android 开发中,单元测试和 UI 测试是非常重要的,可以保证代码的质量和稳定性。以下是 Android 开发中常用的测试框架和工具: 单元测试:在 Android Studio 中可以使用 JUnit 框架进行单元测试。通常会测 阅读全文
posted @ 2023-03-27 17:18 懒懒初阳 阅读(88) 评论(0) 推荐(0)
摘要:aidl 整理 AIDL(Android Interface Definition Language)是一种用于定义 Android 应用程序中进程间通信(IPC)的接口的语言。AIDL 允许 Android 应用程序中的不同进程之间进行通信,例如 Activity、Service 和 Broadc 阅读全文
posted @ 2023-03-27 15:38 懒懒初阳 阅读(166) 评论(0) 推荐(0)
摘要:添加kotlin混编支持 要在Android项目中添加Kotlin混编支持,需要进行以下步骤: 在项目的 build.gradle 文件中添加以下代码: kotlin android { ... // 添加kotlin支持 kotlin { experimental { coroutines "en 阅读全文
posted @ 2023-03-26 23:21 懒懒初阳 阅读(380) 评论(0) 推荐(0)
摘要:sco音频采集只支持单路音频采集 使用SCO采集音频时,如果有两个物理mic,则会采集到两个物理mic的音频信号,但由于SCO协议本身的限制,只能传输单路音频数据,因此最终拿到的单路音频数据中只包含其中一个物理mic的音频信号。 具体来说,当使用SCO协议进行音频采集时,系统会默认选择一个物理mic 阅读全文
posted @ 2023-03-26 18:07 懒懒初阳 阅读(334) 评论(0) 推荐(0)
摘要:Android中常见的延迟执行方法有哪些,各有什么优缺点。应用场景是什么 在 Android 中,常见的延迟执行方法有以下几种: Handler.postDelayed():在指定的时间后向 Handler 发送一个延迟执行的消息,通过 Handler 的 handleMessage() 方法来执行 阅读全文
posted @ 2023-03-26 17:20 懒懒初阳 阅读(3293) 评论(0) 推荐(0)
摘要:Android中常见的线程池 Executors在Android中什么场景下使用 Executors 是 Java 平台的一个工具类,提供了方便的线程池管理功能,可以帮助开发者更加便捷地管理线程。在 Android 开发中,Executors 经常被用于异步处理任务,特别是在处理 IO 操作和网络请 阅读全文
posted @ 2023-03-26 14:57 懒懒初阳 阅读(1027) 评论(0) 推荐(0)
摘要:LRUCache具体使用 LRU Cache是一种常见的缓存策略,通过最近最少使用的原则,在缓存满时考虑淘汰最近没有使用的数据。可以在Android中作为一个内存缓存工具使用,比如用于加载图片、网络请求等。 在Android中使用LRU Cache可以先创建一个继承自LruCache类的缓存类,重写 阅读全文
posted @ 2023-03-23 15:26 懒懒初阳 阅读(390) 评论(0) 推荐(0)
摘要:Android中Window的创建过程 在Android中,Window是与操作系统交互的最上层组件。当一个应用程序启动时,首先会创建一个Activity,并且将此活动附加到一个新的窗口上。 以下是Android中窗口的创建过程: ActivityManagerService(AMS)接收到一个启动 阅读全文
posted @ 2023-03-23 15:13 懒懒初阳 阅读(287) 评论(0) 推荐(0)
摘要:AMS启动过程 在Android应用启动流程中,AMS( Activity Manager Service )的启动是非常关键的。以下是AMS的启动过程: 1.进程启动 当我们启动一个应用时,系统会挂起Zygote进程。然后,Zygote生成新的应用进程,乘坐第一辆列车到达了Android的世界。这 阅读全文
posted @ 2023-03-22 22:25 懒懒初阳 阅读(454) 评论(0) 推荐(0)
摘要:Android中阻塞队列的应用有哪些 阻塞队列在 Android 中有很多应用,比如: 线程池:线程池任务的执行就是基于一个阻塞队列,如果线程池任务已满,则任务需要等待阻塞队列中的其他任务完成。 Handler 消息队列:Handler 的消息队列也是一种阻塞队列。handler发送消息时,首先将消 阅读全文
posted @ 2023-03-22 16:29 懒懒初阳 阅读(187) 评论(0) 推荐(0)
摘要:CAS(Compare-And-Swap) 是一种原子操作,用于实现多线程同步。在Java中,Atomic系列的类通过CAS实现了并发实现。 CAS操作包含三个参数:内存地址V、旧的预期值A、新的值B。当且仅当预期值A和内存地址V中的值相同时,才进行更新和替换。否则不执行任何操作。 CAS操作原理如 阅读全文
posted @ 2023-03-22 15:57 懒懒初阳 阅读(87) 评论(0) 推荐(0)
摘要:实现一个自定义控件 实现一个自定义控件可以通过以下步骤: 创建一个Java类,并继承已有的View或ViewGroup。 自定义视图需要覆盖一些方法,例如 onDraw()、onMeasure()和 onLayout(),以便控制视图在屏幕中所占的位置和呈现方式。 定义自定义属性,也就是在 attr 阅读全文
posted @ 2023-03-22 10:20 懒懒初阳 阅读(68) 评论(0) 推荐(0)
摘要:在 Android 中,音频采集常用的配置属性有以下几个: 音频源 Audio Source 属性,用于指定采集音频数据的来源。例如: MediaRecorder.AudioSource.MIC:从麦克风采集音频数据。 MediaRecorder.AudioSource.DEFAULT:使用默认的音 阅读全文
posted @ 2023-03-21 23:49 懒懒初阳 阅读(992) 评论(0) 推荐(0)