- 博客(111)
- 收藏
- 关注
原创 安卓Compose中accompanist库使用详解
优势:Accompanist 显著简化了权限管理、复杂布局、动画过渡等场景的开发成本。注意事项:随着 Compose 版本更新,部分功能(如分页组件)可能迁移至官方库,建议定期查阅 官方迁移指南。最佳实践:通过模块化依赖管理(BoM)确保版本兼容性。通过合理使用这些库,开发者可大幅提升 Compose 开发效率,同时保持代码的简洁性与可维护性。
2025-03-12 15:22:36
1204
原创 2025年上海安卓发展机遇
安卓开发者应重点关注 车载系统、工业物联网、医疗健康应用、AR/VR交互 四大方向,结合上海产业政策红利,通过技术跨界(如AI+Android)和生态协作抢占先机。同时,及时跟进如鸿蒙原生适配、低空经济等新兴领域,拓展技术边界。
2025-03-02 19:59:13
559
原创 2025年如何实现安卓、iOS、鸿蒙跨平台开发
优先 ArkUI-X:若项目需深度集成鸿蒙特性(如多设备协同),且希望长期投入鸿蒙生态。选 Flutter/React Native:若团队已有经验,且需快速覆盖主流平台。混合开发:核心功能用原生(如鸿蒙分布式模块),其他部分用跨平台框架,平衡效率与体验。更多技术细节可参考华为开发者文档、Flutter 鸿蒙社区适配指南。
2025-02-28 12:45:44
1691
原创 Android 中音频焦点的使用场景及示例
在 Android 系统中,音频焦点(Audio Focus)是一种机制,用于管理多个应用程序同时播放音频时的冲突。当一个应用程序请求音频焦点并获得它时,其他应用程序在播放音频时需要做出相应的调整,以避免多个音频同时播放造成混乱。
2024-09-18 22:47:35
1135
原创 编程学习中的“知识宝库”打造秘籍
在编程学习的海洋中,一个高效的笔记记录和整理方法是我们不可或缺的工具。通过选择合适的工具、建立记录习惯、定期整理笔记、使用标签和索引以及建立知识图谱等方法,我们可以打造属于自己的编程学习“知识宝库”,为我们的编程之路提供有力的支持。让我们一起行动起来,用心记录每一个知识点,整理出属于自己的编程知识体系,在编程的世界里不断前行。
2024-08-25 00:03:35
376
原创 Kotlin 的优势:现代编程语言的卓越选择
简洁与优雅的语法空安全特性函数式编程,支持高阶函数、lambdaKotlin 内联函数与 Java 的互操作性强大的类型推断协程支持`lazy` 委托object 单例模式区间表达式现代的开发工具支持
2024-07-29 22:22:01
540
原创 安卓14中Zygote初始化流程及源码分析
日志抓取结合日志与源码分析systemServer zygote创建时序图一般应用 zygote 创建时序图向 zygote socket 发送数据时序图
2024-07-12 23:17:16
1114
1
原创 安卓Framework开发快速分析日志及定位源码
如何区分源码中 main system events 日志查看 Activity 生命周期日志分析 events 日志在源码中位置应用进程ID助分析具体应用ProtoLog 动态开关日志如何快速定位相关流程的代码位置
2024-07-01 11:59:48
892
原创 adb常用命令详解--提升开发效率利器
文件管理截屏与录屏logcat 使用dumpsys 相关ps 相关am 相关pm 相关wm 相关setprop 设置属性input 相关adb connect 远程无线调试
2024-06-17 14:00:18
1255
原创 Android 性能优化--APK加固(1)混淆
为什么要开启混淆如何开启代码混淆如何开启资源压缩代码混淆配置代码混淆后,Crash 问题定位
2024-02-29 13:25:57
1408
2
原创 安卓相机慢动作的软件实现要点
慢动作英文称呼SlowMotion,也就是高帧率录像,如果以正常30帧播放,就能看到慢动作效果,可以用来拍摄快速移动物体的瞬间,比如鱼儿的游动、终点冲刺结果等。本文主要介绍慢动作在安卓相机应用中如何实现
2024-02-25 16:21:41
1910
1
翻译 [译]Android性能优化-Kotlin优化isBlank
最近在优化 Jetpack Compose 运行时的部分时,偶然发现了一个看似无害的 API isBlank() 。如果调用的字符串为空或仅由空格字符组成,则此 API 将返回 true 。但它真的无害吗?让我们看一下 JVM 实现,以更好地了解它的作用
2024-02-23 10:55:53
213
原创 安卓OpenGL添加水印并录制(二)---抖音录制原理
通过 前文 我们知道了如何采集 Camera 视频,叠加水印、贴纸保存为MP4,但是录制视频并没有音频,本文进一步介绍添加音频录制实现。
2024-02-20 22:15:54
1371
1
原创 如何把手机平板变为电脑的屏幕
闲置的手机平板、触屏音箱等,均可作为电脑的扩展屏,为电脑增加一块显示屏,本文介绍如何使用免费的软件spacedesk实现。
2024-02-11 21:37:08
6796
1
原创 安卓SurfaceTexture中updateTexImage使用及源码分析
在Android系统中,SurfaceTexture 是一个特殊的类,它将来自硬件纹理缓冲区(如相机预览流或视频解码输出)的图像数据转换为 OpenGL ES 可以直接使用的纹理。updateTexImage() 方法是 SurfaceTexture 类的核心方法之一,此方法的主要作用是从 SurfaceTexture 内部持有的图像缓冲区中取出最新一帧,并将其内容复制到与 SurfaceTexture 关联的 OpenGL 纹理上。这对于实时图形渲染、视频播放以及从相机捕获并实时处理图像等场景至关重要。
2024-02-02 22:49:08
2144
2
原创 安卓MediaRecorder(4)视频采集编码写入详细源码分析
通过 文2 我们知道了 MediaRecorder 各个接口 Framework 中的实现。通过 文3 我们 知道了 MediaRecorder 底层音频的采集、编码、写入文件等详细流程。本文主要介绍 MediaRecorder 视频的采集、编码等相关流程。
2024-01-24 22:07:39
1580
1
原创 安卓MediaRecorder(3)音频采集编码写入详细源码分析
前言音频采集音频初始化AudioRecord 分析AudioSource 采集到音频音频编码音频编码后数据处理MPEG4Writer写入音频编码后数据到文件MPEG4Writer::Track 取编码后的音频编数据结语
2024-01-13 11:19:43
1691
1
原创 Intellij建议用String替换StringBuilder
String 和 StringBuilder 性能对比String 和 StringBuilder 使用的字节码对比
2024-01-01 13:24:40
646
原创 安卓MediaRecorder(2)录制源码分析
JAVA new MediaRecorder() 源码分析android_media_MediaRecorder.cpp native_init()MediaRecorder.java postEventFromNativeandroid_media_MediaRecorder.cpp native_setup()MediaRecorder 参数设置MediaRecorder.prepare 分析MediaRecorder.start 分析MediaRecorder.stop 分析
2023-12-09 16:29:42
1691
2
原创 Android Bitmap 使用Vukan、RenderEffect、GLSL实现模糊
使用 Vukan 模糊使用 RenderEffect 模糊使用 GLSL 模糊RS、Vukan、RenderEffect、GLSL 效率对比
2023-11-27 22:43:03
2812
1
原创 安卓使用MediaRecorder(1)录制音频的详细使用
引言使用 MediaRecorder 的步骤常见问题及解决思路无法访问存储卡目录录制的音频文件没有声音录制过程中出现异常MediaRecorder无法正常启动录制的音质或者画质很差录制的文件无法播放结语
2023-11-26 19:11:39
4422
原创 Audacity 使用教程:轻松录制、编辑音频
本教程向大家介绍了如何使用 Audacity 进行音频录制和编辑。通过简单的操作,你可以轻松地录制和处理音频文件。无论你是音乐爱好者还是专业人士,Audacity 都能满足你的需求。快来尝试一下吧!
2023-10-01 12:07:31
10303
原创 Android 性能优化–Gradle 编译速度优化
编译速度优化1. 保持工具最新2. 使用 KSP 代替 kapt3. 避免编译不必要的资源4. 优化 repositories maven 排序5. 在调试构建中使用静态构建配置值6. 使用静态依赖版本7. 创建库模块8. 为自定义构建逻辑创建任务9. 将图像转换为 WebP10. 禁用 PNG 处理11. 挑选 JVM 垃圾收集器12. 增加 JVM 堆大小13. 使用非传递 R 类14. 使用非常量 R 类15. 禁用 Jetifier 标志16. 使用配置缓存
2023-08-16 07:00:00
1525
原创 Android 11 获取启动其他应用
如果应用以 Android 11(API 级别 30)或更高版本为目标平台,并查询与设备上已安装的其他应用相关的信息,则系统在默认情况下会过滤此信息。此过滤行为意味着您的应用无法检测设备上安装的所有应用,这有助于最大限度地减少您的应用可以访问但在执行其用例时不需要的潜在敏感信息。比如 queryIntentActivities()、getPackageInfo() 和 getInstalledApplications() 将无法获取到返回结果.NameNotFoundException
2023-08-08 21:50:40
660
原创 Android Compose Button defaultButtonColors
编译会出现异常 Unresolved reference: defaultButtonColors 新版本已经没有 ButtonConstants.defaultButtonColors 和 backgroundColor 可以使用 ButtonDefaults.buttonColors 替换
2023-07-01 16:09:46
685
原创 Android Studio Bot 下载使用
下载 Android Studio Hedgehog 找到Studio Bot: View->Tool Windows->Studio Bot 登录 Google 账号
2023-07-01 15:56:53
1090
3
原创 Android性能优化--Perfetto抓取trace
开启Android的trace跟踪服务;使用 adb 抓取;通过 perfetto 网页抓取;直接在手机上抓取;使用 record_android_trace 抓取;熟悉 perfetto 快捷键,会有事半功倍效果;
2023-04-17 13:00:15
3146
1
原创 安卓Camera2用ImageReader获取NV21源码分析
以前如何得到Camera预览流回调如何使用Camera2得到预览流的回调是否可以通过ImageReader直接得到NV21回调呢ImageReader数据流回调的流程源码分析
2023-02-12 16:22:57
2290
原创 Android性能优化--Perfetto分析native内存泄露
本文示例是windows,这里使用了python工具,在Linux和mac同样适用。这里只能抓到一次内存的快照,如果想连续记录多次内存的数据需要能Root手机。抓取一次某个应用的内存命令如下,注意提前关闭其它adb程序,如AS。可以看到第一个大块有内存一直上升,结合其中的栈堆,分析并解决即可。是解决问题后,抓取的tarce,可以看到问题已解决。这里我上传了一份自己抓的数据,下载地址。通过点击 方块,对比不用时刻的内存。下载 perfetto ,地址在。每执行一次,上一步会记录一次。连续抓取多次内存快照。
2022-12-21 20:38:16
4240
2
原创 Windows WSL Ubuntu Android 编译
安装ubuntu;替换换ubuntu20.04为阿里云源;下载 LineageOS 源码;repo安装使用项目配置;扩充wsl磁盘空间;迁移虚拟磁盘;Android编译依赖工具链;源码编译;
2022-08-21 18:00:37
1319
原创 WSL增加独立的虚拟磁盘VHDX
WSL安装;安装Hyper-V;挂载VHD磁盘,以管理员权限启动PowerShell;创建VHD磁盘;在WSL中(如Ubuntu)格式化VHD磁盘为ext4;
2022-08-21 17:56:09
3721
原创 Android ITelephony EndCall Remove 各版本挂断、拦截电话方法
在 Android 8.0 、Android 9.0 中存在 endCall() 接口从 Android 10 开始,已经没有 endCall() 接口在 Android 10 之前可以通过如下方式 挂断 电话Android 10 之后 挂断电话参考如下
2021-11-19 17:11:33
4459
原创 安卓基于SRS的Webrtc推拉流
Https必须需要域名httpx-static 配置 https 代理基于SRS 配置文件支持 httpsAndroid 推拉webrtc流到srs
2021-10-18 17:05:23
5205
3
原创 安卓mediasoup webrtc h264 编解码相关源码分析
mediasoup H264 支持安卓 webrtc 视频采集流程源码分析安卓选择软编码硬编码流程mediasoup openh264 软编码源码分析mediasoup 视频 H264 硬编码解码器初始化流程openh264 提供编解码相关函数
2021-09-10 13:47:40
1786
2
原创 安卓 webrtc 开启h264 软编解码
修改 use_linux_config增加 codec_list parser_list h264 支持增加文件 LibH264Decoder.java 增肌文件 LibH264Encoder.java 增加 h264_codec.cc 修改H264 Create()修改 sdk/android/BUILD.gn 修改 SoftwareVideoDecoderFacoty.java 和 SoftwareVideoEncoderFacoty.java编译使用吧,祝好运。。。
2021-09-09 14:01:11
4034
1
原创 安卓 Mediasoup V3 基于webrtc 分支m84 的编译
相关网址链接mediasoup-client-android m79 编译mediasoup-client-android 更新到 m84libmediasoupclient 编译使用
2021-09-07 17:32:09
2025
原创 安卓webrtc在ubuntu 2004下编译使用
Http 全局代理配置编译boto 代理配置Unable to reach the snap store 问题解决ERROR: The installation of the Chrome OS default fonts failed.Android中使用的c++库是libstdc++Exception: Missing licenses for following third_party target编译静态库 libwebrtc.alibmediasoup 编译
2021-09-07 15:05:12
2370
Android基于perfetto分析native内存泄露 Trace
2022-12-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人