- 博客(417)
- 资源 (16)
- 收藏
- 关注

原创 Android Studio类ChatGpt的免费AI编程助手
ChatGpt大火,带动了AI工具的发展,介绍两款免费的AI编程助手,一款用于输入关键字自动输出代码,一款则是自动补全提示.可支持大部分代码编辑器,这里主要介绍Android Studio上安装使用.。
2023-06-07 21:13:47
6287
3
原创 Android Framework学习八:SystemServer及startService原理
Android 系统中 SystemServer 启动流程如下:首先由 untimeInit.applicationInit() 准备反射所需 Method,加载 libandroid_servers.so 动态库。接着创建系统上下文,实例化 SystemServiceManager 管理服务。服务启动分三步:startBootstrapServices(t) 启动引导服务,如 ATM 等,通过反射创建服务并执行 onStart();startCoreServices(t) 启动核心服务,像电池服务;
2025-05-21 14:28:18
897
原创 Android Framework学习七:Handler、Looper、Message
文章摘要: 本文介绍了Android中的消息处理机制,核心组件包括Looper、MessageQueue、Handler和Message。Looper作为消息循环的核心,通过Looper.prepareMainLooper()和Looper.loop()启动,确保每个线程拥有独立的Looper对象。MessageQueue是消息队列,以链表形式存储Message。Handler负责发送和处理消息,Message则携带消息内容和目标Handler的引用。Looper.loop()通过循环调用loopOnce(
2025-05-20 19:57:13
1188
1
原创 Android Framework学习六:Binder原理
Binder是Android系统中的一种进程间通信(IPC)机制,涵盖机制、应用和驱动三个层面。在机制层面,Binder提供标准化的通信方式,支持不同进程间的数据交换和方法调用。在应用层面,开发者可通过继承Binder类实现自定义的跨进程通信逻辑。在驱动层面,Binder作为虚拟物理设备驱动,负责管理内存映射、线程管理等底层操作。Binder通信过程中,数据通过Binder驱动在内核态和用户态之间传递,客户端通过copy_from_user将数据拷贝到内核空间,服务端通过mmap直接访问内核空间。每个APP
2025-05-20 12:29:44
742
原创 家里wifi不能上网或莫名跳转到赌博及色情网站就是域名被劫持、DNS被污染了
摘要:DNS 劫持指攻击者篡改域名解析过程,引导用户访问错误 IP 地址。上网时域名易在接入公共 WiFi(黑客搭建虚假热点)、路由器被攻击(存在漏洞或密码被破)、DNS 服务器遭攻击(如 DDoS 攻击)、网络传输(节点被控制)等阶段被劫持。案例有弹出广告、跳转网址等。排查可用 nslookup、ping、dig 等工具。解决方法包括清除系统 DNS 缓存(查看缓存、使用命令清除),登录路由器设置 DNS(更换为公共 DNS 地址,若无效考虑重置路由器),联系运营商处理外网劫持,页面被恶意跳转还可报警。
2025-05-14 14:51:43
1365
原创 Android Framework学习五:APP启动过程原理及速度优化
文章摘要:本文详细介绍了Android应用程序(APP)启动优化的方向与流程,并深入解析了APP启动的完整过程。优化方向包括减少启动时间、优化资源加载等。启动流程涉及多个关键组件,如Launcher、ActivityTaskManagerService(ATMS)和Binder等。文章通过代码示例展示了从用户点击应用图标到系统进程ATMS处理启动请求的详细步骤,包括Launcher调用startActivity、Instrumentation.execStartActivity的调用,以及ATMS的star
2025-05-14 11:51:53
1266
原创 Android Framework学习四:init进程实现
下面图片主要围绕 Android 系统中init进程的运行机制展开介绍。init进程是 Android 系统启动时第一个用户空间进程,它从执行main.cpp文件里的main函数开始运行。main函数以循环调用的方式来维持进程的持续运行,确保后续的系统初始化操作能够逐步完成。执行顺序1. FirstStageMain2. SetupSelinux3. SecondStageMain
2025-05-09 12:20:29
1001
原创 Android Framework学习三:zygote剖析
zygote 进程启动:Zygote 是 Android 系统中一个重要的进程,是所有 Java 应用程序进程的孵化器 ,它的启动是整个流程的开端。随后进入app_main.cpp中的main()函数,这是 Zygote 进程在 C++ 层面启动的入口函数。runtime.start () 启动 ZygoteInit:调用runtime.start()函数来启动ZygoteInit。这是 Zygote 进程启动过程中的关键步骤,它会进一步调用一系列函数来完成虚拟机和 JNI 相关的初始化
2025-05-04 17:42:10
951
1
原创 Android Framework学习二:Activity创建及View绘制流程
当一个应用程序创建一个窗口(例如 Activity 的界面)时,它会向 WMS 发送请求。根据窗口的属性(如大小、位置、层级等)将其添加到窗口管理列表中。每个窗口都有一个或多个 Surface 与之关联。当应用程序需要绘制窗口的内容时,它会通过 Surface 来获取绘图的上下文,然后使用图形库(如 OpenGL)在 Surface 上进行绘制。Activity包含PhoneWindow、DecorView、ViewRootImpl等其创建流程如下
2025-05-02 19:30:58
1414
原创 Android Framework学习一:系统框架、启动过程
Zygote 进程是 Android 系统中由 init 进程启动的第一个 Java 进程,它运行着一个 Java 虚拟机(JVM)实例,并且预加载了大量的系统资源和类,能够快速创建新的应用程序进程和部分系统服务进程。zygote是由init进程fork出来的,在Android中,DVM和ART、应用程序进程以及运行系统的关键服务的SyetemService进程都是由Zygote进程来创建的,所以称之为孵化器。init 进程主要通过解析配置文件来确定要执行的操作和启动的服务。init是用户空间的鼻祖。
2025-04-30 19:37:44
1119
原创 Manus获得7500万美元融资
根据多条证据显示,Manus的母公司蝴蝶效应(Butterfly Effect)近期完成了一轮7500万美元的融资,由美国知名风投公司Benchmark领投,多家现有投资者跟投。此次融资使Manus的估值达到近5亿美元,相比之前的估值增长了约五倍。Manus 是一家专注于 AI 代理(AI Agents) 和 自动化任务处理 的科技公司,其母公司为 蝴蝶效应(Butterfly Effect)。Manus确实在近期完成了7500万美元的融资,估值达到近5亿美元,这为其未来的发展提供了强有力的资金支持。
2025-04-30 17:46:41
964
原创 Android WebRTC回声消除
WebRTC 的回声消除系统主要包含声学回声消除(AEC)模块、语音活动检测(VAD)模块、舒适噪声生成(CNG)模块等。WebRTC是一个由谷歌主导开发的开源项目,其目标是通过简单的API,实现实时通信(RTC)。WebRTC项目包含了多个处理音视频通讯问题的模块,其中就包括了一个性能优异的回声消除(AEC)模块。它旨在为开发者提供一个高效、可靠的解决方案,以消除通话中的回声干扰,提升用户体验。主要回声消除函数就是上面介绍的这几个,如果要放到Android上调,就要把这几个包成jni的形式。
2025-04-28 18:23:15
1311
原创 android录音生成wav
站在巨人的肩膀上已经有人实现了,代码位置github使用实现源码主要是这几个文件在 record/src/main/java/com/dreamfish/record/下的AudioRecorder.javaFileUtil.javaPcmToWav.javaRecordStreamListener.javaWaveHeader.java调用如下private AudioRecorder audioRecorder;audioRecorder = AudioRecorder.getI
2025-04-28 17:59:14
776
1
原创 C/C++实现hmacSha256+base64
HMAC(Hash-based Message Authentication Code)即基于哈希的消息认证码,它是一种使用加密哈希函数来验证消息完整性和真实性的机制。SHA-256 是 SHA-2(安全哈希算法 2)家族中的一员,属于密码学哈希函数。它能将任意长度的输入数据转化为固定长度(256 位,即 32 字节)的哈希值。Base64 是一种基于 64 个可打印字符来表示二进制数据的编码方式,常用于在文本协议中传输二进制数据,比如在电子邮件、HTTP 协议中传输图片等二进制文件。
2025-04-23 10:40:32
706
原创 warning C4819: 该文件包含不能在当前代码页(936)中表示的字符
UTF-8编码:UTF-8是一种广泛使用的编码格式,它兼容ASCII,并且可以表示任何Unicode字符。描述:UTF-8(Unicode Transformation Format-8 bits)是一种变长字节表示的Unicode字符集编码方式,它可以表示任何Unicode字符。如果你的项目需要处理多种语言的字符,使用 UTF-8 编码通常是更好的选择,因为它支持更广泛的字符集。描述:GBK是扩展的国标码,全称《汉字内码扩展规范》(GBK),它兼容GB2312,并扩充了很多汉字和符号。
2025-04-21 20:05:35
844
原创 sdcard、tf上印的字代表什么参数,不同监控、摄像头需要哪种卡
SD 卡的 “Class” 是指速度等级,用于衡量 SD 卡的数据传输速度,常见的有 Class 2、Class 4、Class 6、Class 10 等,后面的数字代表着该 SD 卡的最低写入速度。除了 Class 等级标识外,SD 卡还有 UHS 速度等级标识(如 U1、U3 等)和视频速度等级标识(如 V6、V30 等),它们从不同角度对 SD 卡的速度性能进行了标注。1080P摄像头选class 10或U1及以上的,4K摄像头要U3或V30及以上的
2025-04-21 16:52:47
1034
原创 家用打印机性价比排名及推荐
家用彩色打印机性价比排名及推荐,兄弟T436W:兼顾耐用性、无边距和5G WiFi,适合技术敏感型用户。佳能G3810:最低价高彩色打印量,适合预算有限且不频繁使用的场景。集打印、复印、扫描和照片打印功能于一体,支持手机APP无线操作。爱普生L3253:打印质量与成本平衡最佳,适合家庭全能需求。得力L512ws:黑白与彩色均衡,适合中小型企业基础办公。小米米家连供喷墨打印一体机。
2025-04-15 16:38:35
735
原创 卧式翻盖冷柜性价比排名及推荐
卧式翻盖冷柜是一种顶部开启设计的制冷设备,主要用于食品的冷冻和低温储存。对以下品类做了性价比分析:1. 志高7882. 北极熊7083. 北极熊8984. 天福雪2025冷冻世界8985. 荣事达788D6. 妮雪8987. 美凌698(美凌时尚家)8. 美凌福698(美凌福耀)9. 美凌美智69810. 堡尔冰王子82811. 雪宝莱81812. 墨香81813. 夏新698
2025-04-10 09:55:21
1109
原创 卧式玻璃门欧式岛冰柜性价比排名及推荐
卧式玻璃门欧式岛冰柜是一种结合欧式美学设计、卧式结构与透明玻璃门展示功能的商用冷冻冷藏设备,主要用于商超、便利店等场景中食品的低温储存与开放式陈列,兼具高效制冷、节能省电与视觉营销特性。
2025-04-10 09:53:09
798
原创 冷藏操作台性价比排名及推荐
冷藏操作台是一种兼具冷藏功能与操作台面的商用制冷设备,主要用于食品加工、暂存及展示场景。这里对网上一些热销的品类做性价比分析。1. 雪淞制冷省电冷藏款(综合最优):超大容量(533L)+ 低功率(120W),1年单位成本仅3.45元/L,长期使用成本优势显著。2. 冰立方冷藏款23. 美凌时尚家冷藏款4. 冰先生冷藏款
2025-04-10 09:50:14
858
原创 四门冷冻柜性价比排名及推荐
四门冷冻柜很多都没有能效等级的,这里列了几个品牌,这里只列了全冷冻的,双温的同容量的价格会有一些差别,但不会差太多。四门冷冻柜是一种立式、多门设计的专业冷冻设备,主要用于商业或工业场景中食材、药品等物品的低温长期储存。7. 温度范围:东星和卡帝仕最低温度仅-15~-18℃,冰仕特和星星可达-20℃,需根据存储需求选择。8. 功率:冰仕特功率最低(250W),长期使用更省电;6. 能效等级:冰仕特和星星为2级能效,其他机型无数据,可能影响长期电费。看了许多二手的,这里只列了三个,可以自行从网上找。
2025-04-03 17:20:39
784
原创 四门冷柜、操作台、卧式冰柜区别及运输注意事项
四门冷冻柜适合空间有限、需分类存储或多温区控制的场景,如小型商铺或对展示性要求高的商用环境。卧式冷冻柜更适合大容量、低频存取且对能耗敏感的场景,如家庭囤货、实验室或餐饮后厨。操作台操作与存储一体。选择时需综合考量空间、预算、使用习惯及存储需求。
2025-04-03 17:14:20
1234
原创 各品牌天花机空调从3匹到5匹性价比分析
吸顶/天花机空调,品牌多如牛毛,从3匹到5匹,某些品牌有6匹的,能效一到三级,APF值也各不相同,价格也有差异,怎么选择呢,谁性价比高,这里需要一些分析。这里假设是100平方的空间选择空调,选哪个品牌,怎么组合这些都需要仔细考虑,根据空调选型的一般原则,每平方米需要的制冷量大约在200-300W左右。100平方米的话,总制冷量应该在20-30kW之间,如果在热的城市及热的时候,可能需要更多。3匹的制冷量大概7.2kw左右,4匹10kw,5匹的12kw,6匹14.5kw,所以只买一台是不够的,需要多台或不同品
2025-04-02 10:08:38
971
原创 各品牌2匹空调挂机性价比分析
空调怎么选,是个技术活,要通过综合匹数、能效、变频技术、硬件配置及附加功能,可在预算范围内选择性能优异且使用成本低的空调,实现高性价比。分析的品牌1. TCL2匹小蓝翼2. 海尔大2匹3. 海尔2匹4. 小米2匹睡眠款5. 小米2匹巨省电Pro6. 华凌大2匹50HL17. 华凌2匹46HA18. 美菱2匹9. 科龙2匹10. 统帅2匹(海尔子品牌)
2025-04-02 10:06:03
1552
原创 Manus火了,它是什么,与DeepSeek的区别是什么
Manus 是由 Monica.im 研发的全球首款 AI Agent 产品,于 2025 年 3 月 6 日正式发布。AI Agent 即人工智能体或人工智能代理,是一种能够感知环境、进行决策并执行动作以实现特定目标的智能实体。这个是官方推出的视频,里面包含了3个例子:Manus创始人介绍Manus。介绍它与DeepSeek的区别。
2025-03-07 16:04:12
2157
原创 脚本自动化生成git提交的补丁并生成新旧对比源文件
当需要把多个git提交做成补丁打包给其它人使用,单纯的发布xx.patch文件是不够的,应该可能涉及到冲突,这时候就需要修改前与修改后源码,本文主要是为解决这个问题。Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。
2025-03-03 11:08:41
1059
原创 Android studio Unknown Kotlin JVM target: 21
在Java开发中,理解项目的构建过程至关重要。JVM target是构建过程中的一个重要概念,它指定了编译后的字节码应该兼容的JVM版本。选择合适的JVM target可以确保编译后的代码能够在目标JVM上正确运行。Unknown Kotlin JVM target: 21错误原因是JVM版本过高了,Android Studio不支持。
2025-03-03 11:07:48
2557
原创 Websocket、WebRTC在大模型中的应用
WebSocket:基于TCP,主要功能是在客户端和服务器之间建立持久的双向通信连接。它使得浏览器和服务器之间能够进行实时的数据传输,允许服务器主动向客户端推送数据,而无需客户端频繁地发送请求来获取更新,大大提高了数据传输的效率和实时性。WebRTC:主要用于在 Web 浏览器之间建立实时的音视频通信和数据传输。它提供了一系列的 API,使得开发者可以方便地实现浏览器之间的视频通话、语音通话、文件传输等实时通信功能,无需依赖任何插件。
2025-02-24 16:22:32
1294
原创 Python与Java实现hmacSha256+base64
本文用java与python实现hmacSha256 base64加密算法,HMAC是什么?HMAC(Hash-based Message Authentication Code,基于哈希的消息认证码)是一种使用密码散列函数,同时结合一个加密密钥,通过特定计算方式生成的消息认证码(MAC)。它可以用来保证数据的完整性,同时可以用作某个消息的身份验证。HMAC算法要求通信双方共享密钥、约定算法,并对报文进行哈希运算,形成固定长度的认证码,从而通过认证码的校验来确定报文的合法性。SHA-256是什么?
2025-02-11 11:41:47
803
原创 Barcode、QrCode原理及用Python生成条形码、二维码
与一维条码相比,二维码可以在更小的面积内存储大量的数据。例如,常见的 QR 码(一种二维码)可以存储多达 7089 个,Code 128 码是一种一维条码,由美国的 Intermec 公司于 1981 年开发。它能够对数字、字母和符号进行编码,可表示 ASCII 码中从 32 到 126 的 128 个字符,这也是它被称为 Code 128 码的原因。EAN13 码即国际物品编码协会(EAN)制定的一种商品用条码,也称为通用商品条码,由 13 位数字组成,是目前全球使用最广泛的商品标识条码之一。
2025-01-24 16:05:20
1237
原创 【CTA认证】详解进网许可证、序号、扰码
进网许可证是可通话电子设备能够合法接入公用电信网使用的重要凭证,进网许可认证也称CTA、或者NAL认证。CTA是ChinaTypeApproval的缩写;NAL是网络准入许可的英文缩写,二者均可表示此种认证,CTA进网认证、CCC认证和SRRC无线电型号核准证,即通讯产品的三证。以下从定义、申请流程、有效期、辨别方法、作用、进网许可证序号等方面详细介绍。
2025-01-24 16:02:53
2856
原创 电机原理及在人形机器人中的作用
电机俗称马达,是一种将电能转换为机械能或将机械能转换为电能的电磁设备。电机原理主要基于电磁感应定律,即法拉第电磁感应定律和楞次定律。人形机器人的关节就是使用各种电机实现驱动的。
2025-01-23 11:51:28
1348
原创 MacOS安装Docker battery-historian
在 MacOS 上安装 battery-historian,可以使用 Docker 进行安装runcare/battery-historian:latest。5. 访问 Battery Historian:在浏览器中输入http://localhost:9999,即可打开 Battery Historian 界面。来运行容器,将容器的 9999 端口映射到主机的 9999 端口,其中-d表示在后台运行容器,–name=battery为容器指定一个名称叫battery。下载适合 MacOS 的版本进行安装。
2025-01-23 11:49:02
1245
原创 使用iperf进行wifi拉距吞吐测试
iperf 是一个用于网络性能测量和调优的工具,它是一个跨平台的开源软件,使用 C 语言编写,可在 Linux、Unix 和 Windows 、android等多个平台上运行。本文讲解如何在各种平台或设备上运行iperf。
2025-01-16 10:45:45
1246
原创 个人使用的vim插件推荐
Fitten Code是由非十大模型驱动的AI编程助手,它可以自动生成代码,提升开发效率,帮您调试Bug,节省您的时间。vim-tagbar 是一个非常有用的 Vim 插件,它通过侧边栏显示当前文件的结构概览,帮助你快速导航和理解代码结构。vim-airline 是一个非常流行的 Vim 插件,用于增强 Vim 的状态栏(status line)和标签栏(tab line)。CtrlP 是一个非常强大的 Vim 插件,用于快速查找和切换文件、缓冲区、MRU(最近使用的文件)、标签、单词等。
2024-12-04 10:39:28
1091
原创 MacOS安装sshfs挂载远程电脑硬盘到本地
SSHFS(SSH Filesystem)是一种基于FUSE(用户空间文件系统)的文件系统,它允许你通过SSH协议挂载远程文件系统。使用SSHFS,你可以像访问本地目录一样访问远程服务器上的文件和目录,而无需将这些文件实际下载到本地计算机。本文介绍如何在MacOS上安装sshfs。
2024-12-04 10:37:40
1856
原创 vim插件管理器vim-plug替代vim-bundle
vim-plug 和 vim-bundle 都是 Vim 的插件管理器,但它们有一些关键的区别。使用方法与bundle/vundle有点类似,左边是vim-bundle,右边是vim-plug,比如要安装vim-sensible插件,则把以下内容写到vimrc文件中。如果有bundle了,可以直接复用它管理的插件,不同系统写法不一样。vim重新打开,然后执行:PlugInstall开始安装插件。:PlugClean 卸载不在Plug指定的列表的插件。:PlugUpdate安装或更新插件。
2024-11-29 15:31:51
1025
Android内存测试memtester可执行应用
2024-10-08
windows下curl+openssl+zlib 32位与64位dll与lib库及头文件
2024-06-13
硬件设备中麦及喇叭声学自测音频
2023-06-28
安卓手机功耗分析工具battery-historian离线资源
2021-05-25
opencv的.cache文件
2018-02-02
gcc-3.3.2.tar.gz第二部分
2009-05-13
gcc-3.3.2.tar.gz第一部分
2009-05-13
binutils-2.14.tar.gz完整版
2009-05-13
vim用户手册(完全版)
2009-03-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人