自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 stateflow源代码详解

参数是一个函数式接口,用于调用我们定义的表达式,suspend的修饰符说明这个函数必须在协程里面执行。最后一段是启动一个挂起函数,挂起当前的while循环,如果有新数据过来,通知挂起函数完成可以继续执行循环获取数据。哎呀,只是一个接口,我们右键 go to implementations。// 隐藏加载,展示数据。调用我们定义的表达式,emit是一个挂起函数。这是一个很申请的定义哦,ai问出来的结果是。构造函数的参数不能为空,所以必须有初始值。我们不必细究,总之就是保证线程安全。我们通常抓取流的做法是。

2025-11-19 14:50:20 855

原创 okhttp建造者模式详解

这里的this对象的类型是Builder,然后把Builder对象传递给OkHttpClient进行构建。符合对象构造参数多(尤其是可选参数多)特点,通过final的修饰参数,来保证线程安全。原来每次设置参数都会返回当前build对象的this指针,当前对象像个链条传个下一个设置参数的函数。,并将对象的构造过程与其表示分离,使得同样的构建过程可以创建不同的表示。这个回答很模糊,我们来看看okhttp的源代码中定义从参数。先看connectTimeout。建造者模式的官方回答是。我们常见的构造方式是。

2025-11-19 13:58:48 1008

原创 stateflow和shareflow的区别

专为持有和分发 “单一状态” 设计(如 UI 状态、用户信息、计数器值等)。它的核心是 “始终持有最新的状态值”,并确保新观察者能立即获取当前状态。无论何时注册观察者,都会先收到这个最新值(这是 “状态” 的核心需求:新观察者需要知道当前状态)。更新是 “覆盖式” 的:新值会直接替换旧值,观察者只会收到最新的结果(适合状态的 “当前快照”)。是 “追加式” 的:每个数据都会被分发(除非被缓存策略过滤),适合需要处理 “每一个事件” 的场景。),且溢出策略固定为 “挂起发送者”(确保状态更新不丢失)。

2025-11-16 20:46:53 975

原创 安卓端如何优雅的使用Retrofit配合协程示例代码

val code: Int, // 状态码val message: String, // 提示信息// 具体数据(泛型参数,类型灵活变化)data class WeatherData(val main: Main, // 温度等核心信息val weather: List<Weather>, // 天气描述// 温度等信息val temp: Double, // 温度。

2025-11-16 11:31:41 1086 1

原创 kotlin协程之什么是协程

编写异步操作,避免了传统回调(Callback)或 Future/Promise 模式带来的 “回调地狱” 问题。Kotlin 协程(Coroutines)是一种轻量级的线程管理机制,用于简化异步编程和并发任务处理。确保是在主线程,而且获得主线程handler,原来就是把代码块通过handler推进消息队列。继续跟踪MainDispatcherLoader.dispatcher。右键go to implementation。我们跟踪Dispatchers.Main。我们现在全局作用域中启动一个协程。

2025-11-15 10:08:14 638

原创 okhttp配合协程实践

HttpRequestResult是自定义的数据类。

2025-11-13 12:54:51 105

原创 okhttp详解

OkHttp 是 Square 公司开发的一款高效、简洁的 HTTP 客户端库,广泛用于 Android 开发和 Java 后端,支持 HTTP/1.1、HTTP/2、WebSocket 等,以性能优异、易用性强著称。

2025-11-13 12:42:11 705

原创 C++ primer学习笔记 begin end auto

cout<<"d 是偶数"<<endl;cout<<"d 是奇数"<<endl;

2025-11-13 12:32:43 151

原创 APK瘦身的方法

APK 瘦身是 Android 开发中优化应用体积的重要手段,既能减少用户下载流量,也能降低安装门槛、提升用户体验。

2025-11-12 19:37:18 808

原创 子线程退出需要注意什么?

安卓 线程

2025-11-12 19:32:58 393

原创 android sharepreference 的替代品

在 Android 开发中,因简单易用被广泛用于轻量数据存储,但存在线程不安全、异步操作繁琐、不支持复杂数据结构等局限。

2025-11-12 19:28:38 359

原创 leakcanary详解

leakcanery

2025-11-12 08:55:51 615

原创 研究FFMPEG要先看ffplay.c里面的main函数

文件位于 fftools/ffplay.c。

2025-11-12 08:14:02 149

原创 kotlin扩展函数是如何实现的

Kotlin 扩展函数的本质是 **“带接收者的静态方法”**,通过编译期的语法转换实现,不修改原有类的结构,也不支持动态多态。这种设计既保持了原有类的封装性,又能灵活地为现有类添加功能,是 Kotlin 提升代码可读性和开发效率的重要特性。

2025-11-11 21:09:47 441

原创 android 线程loop

线程绑定:一个 Looper 对应一个线程,通过存储,可通过获取当前线程的 Looper。消息驱动:线程的执行逻辑由消息队列中的消息驱动,避免了线程频繁创建销毁的开销。Handler 依赖Handler必须与 Looper 关联才能发送 / 处理消息(创建 Handler 时若不指定 Looper,默认使用当前线程的 Looper)。

2025-11-11 20:55:40 527

原创 pjsip安卓端编译步骤

pjsip android

2022-11-01 11:59:52 1535

原创 android 内置apk的方法

LOCAL_PATH := $(call my-dir)include $(CLEAR_VARS)# Module name should match apk name to be installedLOCAL_MODULE := GoogleZhuyinLOCAL_MODULE_TAGS := optionalLOCAL_SRC_FILES := $(LOCAL_MODULE...

2019-10-30 15:09:16 1489

原创 android 原生代码,长按power键反复执行弹出关机对话动画bug解决

diff --git a/alps/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.java b/alps/frameworks/base/services/core/java/com/android/server/policy/GlobalActions.javaindex 342ec4b79...

2019-10-30 11:00:39 399

原创 安卓启动模式中容易忽略的要点

Activity跳转时携带页面參数的问题。由于当一个Activity设置了SingleTop或者SingleTask模式后,跳转此Activity出现复用原有Activity的情况时,此Activity的onCreate方法将不会再次运行。onCreate方法仅仅会在第一次创建Activity时被运行。而一般onCreate方法中会进行该页面的数据初始化、UI初始化,假设页面的展示数据无关...

2019-10-29 14:26:50 158

原创 android handler简单理解

1.handler的创建private Handler mHandler = new Handler(){ public void handleMessage(Message msg){ mTextView.setText(""+msg.arg1+"-"+msg.arg2); };}; 来看Handler的构造函数/** * Default cons...

2019-10-26 16:24:26 208

原创 android根据应用方向自动旋转的自定义view

import android.content.Context;import android.util.AttributeSet;import android.view.View;import android.view.ViewGroup;import com.android.camera.Log;// A RotateLayout is designed to...

2019-10-15 17:49:05 785

原创 android init.s分析

.section .text.start.section .text 前这段可以理解是代码段  .start是个什么鬼.equ MODE_USR ,0x10.equ MODE_FIQ ,0x11.equ MODE_IRQ ,0x12.equ MODE_SVC ,0x13.equ MODE_MON ,0x16.equ M...

2019-04-18 13:52:32 460

转载 开关机、重启时间优化

[DESCRIPTION]开关机、重启时间优化:开机性能优化:是用功能和其它因素多方面平衡的结果,片面追求单方面的性能没有太大意义;有些产品设计开机动画非常酷炫,动画图片过多、高帧率会影响开机速度,这时就需要看是开机速度优先还是体验优先;[SOLUTION]1.zygote,预加载class、resources;加载的多了,会影响开机时间;/sdcard/mt...

2019-04-12 21:07:52 729

原创 猪肉概念股上涨的思考

记得前年的时候.岳父大人说现在村里不给养散养的猪了.我就应该想到会带来一波猪肉价格的上涨.结果错过了这次行情.所以政策要仔细的进行分析其带来的后果,作为投资决策之一,还是经验不足啊...

2019-04-08 12:29:15 305

原创 CtsTelecomTestCases

今天遇到下面的错误 发现需要加入overlay的路径加入/vendor/partner_gms/apps/GoogleDialer/overlay/vendor/mediatek/proprietary/packages/services/Telecomm/res/values/config.xml具体可以看引用的文章-------------下面这个例子是在"vendor/goog...

2019-02-28 10:30:35 1093

原创 zip4j的正确使用方式

网上有方法去获取zip4j的进度 的方式有缺陷 ,如果是在后台线程解压, 会有解压到中间一直到不了100%问题, 查看代码.public void extractAll(final UnzipParameters unzipParameters, final String outPath, final ProgressMonitor progressMonitor, boolean runInTh...

2018-03-29 15:24:08 2921 1

原创 安卓电视虚拟鼠标

public class TcMouseManager implements TcMouseView.OnMouseListener{        public static final int KEYCODE_UP = KeyEvent.KEYCODE_DPAD_UP;        public static final int KEYCODE_DOWN = KeyEvent.KEYCODE...

2018-03-27 14:41:14 8606

原创 安卓根据分包打包的方法

最近发现gradle里面需要有一个神奇的功能可以根据属性打包apk 先记下来公司 根据不同标签 给不同分辨率的产品打包 可以极大的缩小apk大小,具体后续在详细写是怎么做的productFlavors{    flavors_default{}    default_720P{}     ffalcon{}     ffalcon_720P{}     toshiba{}     toshiba_...

2018-03-27 13:59:16 682

原创 电视端虚拟鼠标的设计

最近项目需要在电视端虚拟一个鼠标,所以利用jni来做一个。下面是虚拟鼠标控制的java代码SimMouse.java/** * native tool for browser */public class SimMouse {    //private static final String LOGTAG = "BrowserUtil";    public static boolean mToo...

2018-03-24 11:51:49 3185

原创 如何去写一个输入法(1)

最近有幸做了一次输入法的开发,在此处共享一下,今天先写一部分输入法其实就是一个服务,基本上输入法都通过继承自谷歌提供InputMethodService类来实现输入法。然后要重写几个关键的回调函数就可以了。这几个函数包括:(1) onCreateInputView()    我们先来看看API说明:Create and return the viewhierarchy used

2016-02-05 09:30:10 1673

原创 android singleTask 加载模式的理解

简单的说 注明为singletask的activity 在它所属的任务栈中只有一个实例。当一个intent呼起它的时候。它所属的任务栈的栈顶必定是它。因为此时所有在它之上的activity都会被清除。很多人都说的冗长拖沓。其实就这么简单的理解就可以了。

2016-01-26 15:08:24 330

原创 虚拟机中ubuntu 内核更新后共享文件夹失效处理办法

与主机共享文件夹的命令sudo mount -t vboxsf ubuntushare /mnt/shared/ 虚拟机重新安装共享插件 解决更新内核后不能共享主机文件的问题cd /opt/VBoxGuestAdditions-*/init  sudo ./vboxadd setup

2016-01-25 14:58:34 1532

原创 安卓原生浏览器的uml图 现在还有些看不明白后继博客中慢慢分析

2015-04-19 17:17:45 573

原创 Webkit for android java层主要类库关系及浏览器实例讲解

Webkit forandroid的主要框架第一 安卓4.4  以前的框架

2014-07-16 20:09:45 1381

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除