- 博客(186)
- 资源 (46)
- 收藏
- 关注
原创 Android内存管理机制官方详解文档
很早之前写过一篇《Android内存管理机制详解》点击量已7万+,现把Google官方文档整理输出一下,供各位参考。一、内存管理概览Android 运行时 (ART) 和 Dalvik 虚拟机使用分页和内存映射来管理内存。这意味着应用修改的任何内存,无论修改的方式是分配新对象还是轻触内存映射的页面,都会一直驻留在 RAM 中,并且无法换出。要从应用中释放内存,只能释放应用保留的对象引用,使内存可供垃圾回收器回收。这种情况有一个例外:对于任何未经修改的内存映射文件(如代码),如果系统想要在其他位置使用其内
2020-12-14 16:29:40
7690
9
原创 Android.bp文件中加入第三方JAR包或者so文件的方法
预制jar包在项目的根目录新建 libs文件夹,放入要导入的jar包比如 testlib.jar新增Android.bp文件在新增的libs文件夹下加入Android.bp文件,新增如下内容java_import { name: "testlib_jar", jars: ["libs/testlib.jar"],}修改模块中的Android.bp需要在android...
2019-11-14 15:04:25
15831
1
原创 git 上传本地文件到github
git 上传本地文件到githubgit config --global user.name "Your Real Name"git config --global user.email you@email.addressgit initgit add .git commit -m 'Test'git remote add origin git@github.com:XXX...
2014-07-17 17:48:55
55129
1
原创 基于ubuntu 下 vim 入门进阶篇之环境和插件的配置2步完美搞定
本文可以帮助你快速从vi新手到vi熟练使用,按照文中的步骤可以使你在1小时之内搞定所有的配置和熟悉vi的基本使用很早之前就接触vi了,但是一直没时间弄插件,也就使用了vi的基本功能,最近经过2天的折腾,终于把vi配置好了,使用的时候非常酷炫屌,给人看的心花怒放,vi果然是神器中的经典!! 现总结如下:先上配置好之后的效果vim 在ubuntu默认自带的,但是自带的有很多不太完善,需要我们自己设定一下,但是很多包没有装完整,于是用sudo apt-get install vim 再TAB键
2013-12-18 09:25:02
24295
2
原创 Android 获取ROOT权限原理解析
一、 概述本文介绍了android中获取root权限的方法以及原理,让大家对android玩家中常说的“越狱”有一个更深层次的认识。 二、 Root的介绍1. Root 的目的可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等。2. Root的原理介绍谷歌的a
2013-01-04 09:30:08
66428
3
原创 Android内存管理机制详解
与windows内存区别 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于 Windows的内存管理。主要特点是,无论物理内存有多大,Linux都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows是只在
2012-12-13 10:37:33
80364
3
原创 MIPI CSI 1-LANE结构示意图
图示展示了一种基于深度学习的图像分类模型架构,包含输入层、卷积层、池化层、全连接层及输出层。该模型通过多层特征提取与非线性变换,实现对复杂图像的高效分类。实验结果表明,其在标准数据集上达到95%以上的准确率,具备良好的泛化能力与实用性。
2026-09-22 14:36:24
101
原创 端侧openclaw部署步骤
摘要:本文介绍了在Termux环境中安装OpenClaw的步骤。首先需要安装三个基础应用:Termux-GUI、Termux-API和Termux-App。然后通过pkg命令一次性安装开发依赖包,包括tmux、nodejs、python等。最后通过npm全局安装OpenClaw,建议使用"--ignore-scripts"参数以避免可能的安装错误。整个安装过程涉及多个组件,其中npm安装OpenClaw可能需要较长时间。
2026-05-26 09:45:07
44
原创 parse-skill-to-json
目录结构:parse-skill-to-json—scripts—generate_manifest.json—SKILL.md用户提供模块名,例如:从用户输入中提取模块名 (kebab-case 格式)。如果用户未提供,询问用户。确认以下两个文件存在:如果文件不存在,提示用户先创建对应文档。运行通用生成脚本:脚本会自动:检查生成的 JSON 是否合法:5. 人工确认提示用户 Review 生成的 ,重点检查:
2026-05-25 09:20:04
94
原创 code-review
Code Review 报告审查范围:{scope 描述}审查模式:{review-mode}变更文件:{N} 个发现问题:{M} 个({严重} 严重 / {建议} 建议 / {提示} 提示)
2026-05-25 09:17:18
212
原创 module-test-gen
向用户输出最终结果:生成 UT 文件:{列出文件路径}生成 IT 文件:{列出文件路径}(如适用)测试依赖变更:{列出 build.gradle 改动}(如有)编译检查:{通过/有问题}
2026-05-25 09:16:09
186
原创 module-doc-init skill
对内接口(模块间调用)和对外接口(SDK/AIDL/Provider)应在 skill.md 中分别说明调用方式。请为 model-download-management 模块生成技术文档。,必须为 kebab-case 格式。如果模块不在列表中,新增一行。如果用户未提供,询问用户。从用户输入中提取模块名。
2026-05-25 09:15:13
132
原创 module-dev-init
根据用户提供的需求描述,结合步骤 3 加载的技术规范,输出技术设计方案。我们要开始开发一个新功能模块:AI 通话摘要。确认无误后,我将开始执行具体的代码编写。用户提供功能名和初步需求描述,例如:。如果用户未提供需求描述,询问用户。输出分步的代码实现任务列表,写入。如果用户未提供功能名,询问用户。方案按五章节格式组织,写入。完成技术设计和任务拆解后,
2026-05-25 09:14:22
146
原创 bug-fix skill
模块 llmengine 需要修复一个问题:推理超时后未正确释放 GPU 资源。如果无法判断类型,询问用户是 Bug 修复还是需求迭代。模块 alarm 需要进行一次需求迭代:支持多语言播报。确认无误后,我将开始执行代码修改和文档同步。以及根据问题描述定位相关的源代码文件。如果某个文档不存在,跳过并记录缺失项。如果用户未提供问题描述,询问用户。如果用户未提供模块名,询问用户。
2026-05-25 09:12:41
231
原创 nacos 配置ENC(...)加密方法
在 Spring Boot 项目中,Jasypt 是一个常用的加密和解密工具,用于安全地管理敏感信息(例如数据库密码)。从日志来看,jasypt 初始化了默认的加密器 Default String Encryptor,但您想自定义 jasyptStringEncryptor 解密逻辑。注意: your-encryption-password 是用于加密和解密的密钥,建议不要硬编码,可通过环境变量注入。1. 密钥安全性:不要将密钥硬编码到代码中,建议使用环境变量或密钥管理工具。
2024-12-25 16:29:03
2142
原创 qwen2.5微调和评估
https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md#lora-微调。使用 Adam-mini 进行全参数训练。opencompass模型评测工具。
2024-11-01 15:08:16
1010
原创 多张GPU卡
from transformers import pipelinefrom accelerate import init_empty_weights, infer_auto_device_mapfrom transformers import AutoModelForCausalLM, AutoTokenizerfrom accelerate import Acceleratoraccelerator = Accelerator()tokenizer = AutoTokenizer.from_pretr
2024-09-12 20:15:28
1139
原创 Sklearn实例:水果多分类
acc_scores = [] # 存储每个 k 值对应的准确率。plt.ylabel(“Accuracy”) # Y轴标签。plt.xlabel(“K”) # X轴标签。
2024-07-29 15:08:24
507
原创 有意思的逻辑问题:关于AB运动轨迹问题
A始终朝向B,B始终跟A垂直,如果两者速度相等,运动轨迹。// 绘制红点和蓝点之间的连线。// 延迟一段时间后更新下一帧。// 计算红点应该移动的方向。// 计算红点的新位置。// 计算蓝点的新位置。// 红点的起始位置。// 蓝点的起始位置。// 绘制红点和蓝点。
2023-03-24 15:55:59
404
原创 Linux挂载新硬盘方法
1,lsblk命令查看没分区的硬盘名,下面看到是sdb没分区2,用如下命令分区parted /dev/sdb //这里的sdb要根据上面的查询结果来写,千万别搞错了,别把安装系统的分区给搞挂了。在parted中,再执行如下2条命令可以创建分区,下面是把所有硬盘空间都分配给一个名为primary的新分区。(parted) mklabel gpt(parted) mkpart primary 0% 100%上面分区完后,就可以用p命令打印分区表信息如下:再输入q命令可以退出parted。......
2022-06-12 09:40:31
1213
原创 Handler标准用法(推荐)
Handler经常会出现泄露问题,原因是handler持有了activity的引用后导致activity无法被回收,如下是推荐使用的标准用法
2021-12-10 11:21:20
2619
原创 java 打包class文件到jar包
jar cvf xxx.jar xxx\其中xxx.jar是生成目标的jar包,xxx\是需要打包class所在的路径。
2021-10-20 12:34:51
1060
原创 斐波那契函数
fun fib(n) { if (n < 2) { return n } else { return fib(n - 1) + fib(n - 2) }}var time = System::currentTimeMillis()var result = fib(33)System::out.println(result)System::out.println("cust:" + (System::currentTimeMillis()
2021-10-17 21:05:14
346
原创 Java超简单文件读写之BufferedReader和BufferedWriter
java文件读写方法很多,这里就不一一列举了,这里强烈推荐使用BufferedReader和BufferedWriter对文件的读写操作,只需简单几行即可实现文件的读写,如下:读操作 try { BufferedReader in = new BufferedReader(new FileReader("E:\\data.txt")); String str; while ((str = in.readLine()) != null) { try {
2021-09-17 11:57:13
999
原创 Android 获取Wifi列表详解(包含动态权限申请)
WLAN 扫描流程扫描流程分为三步:为 SCAN_RESULTS_AVAILABLE_ACTION 注册一个广播监听器,系统会在完成扫描请求时调用此监听器,提供其成功/失败状态。对于搭载 Android 10(API 级别 29)及更高版本的设备,系统将针对平台或其他应用在设备上执行的所有完整 WLAN 扫描发送此广播。应用可以使用广播被动监听设备上所有扫描的完成情况,无需发出自己的扫描。使用 WifiManager.startScan() 请求扫描。请务必检查方法的返回状态,因为调用可能因以下任一
2021-09-14 10:20:13
6872
1
原创 Android判断当前是usb充电还是AC充电器充电
众所周知,Android充电模式有两种,一种是插入usb充电,也即连接电脑充电,一种是插入充电器充电,也即(AC充电)这两种模式区别是前者可以被调试或者做一些文件的操作,后者只是单纯的充电。判断这两种模式的方法也很简单,使用如下函数即可: public boolean acCharge(Context context) { try { Intent batteryBroadcast = context.registerReceiver(null, new IntentFilter
2021-09-14 09:53:38
2650
原创 基础知识精讲
现准备对如下知识点进行深度解析,将会有一系列的文章推出:binder底层实现http请求拦截器RecycleView底层线程池sqlite同步volatile关键字hashmap底层service主线程内存泄露abstract工厂模式
2021-09-06 16:47:09
223
1
原创 Windows下nodejs npm版本降级
最近在npm install 的时候遇到一个奇怪的错误,找了很久都没找到原因,错误是:npm ERR! code 1npm ERR! path D:\htz\web\htz_web_app\node_modules\node-sassnpm ERR! command failednpm ERR! command C:\WINDOWS\system32\cmd.exe /d /s /c node-gyp rebuildnpm ERR! gyp info it worked if it ends wi
2021-09-02 22:20:22
8182
原创 Android使用无线adb调试模式
一次连接即可告别adb有线模式使用有线连接手机,执行以下命令:adb tcpip 5555> adb tcpip 5555restarting in TCP mode port: 5555接着执行adb connect (手机ip地址):5555,这时候应该就能连接成功了> adb connect 172.25.64.62:5555connected to 172.25.64.62:5555调试完成之后,输入如下的命令断开连接:> adb disconnect
2021-08-31 17:03:57
1166
原创 groovy 替换文件内容代码
在Groovy中文件的操作和替换非常简单,使用如下语句即可瞬间替换文件内容:File testFile = new File(project.getProjectDir(), "/src/main/Test.java".replace("/", File.separator))println("==================")println(testFile.getAbsolutePath())println testFile.getText("utf-8")String aft
2021-08-24 20:36:42
1282
原创 Gradle sync failed: Unable to load class ‘javax.xml.bind.annotation.XmlSchema‘.解决办法
在导入android studio 项目时,可能会遇到如下问题:Caused by: org.gradle.internal.event.ListenerNotificationException: Failed to notify project evaluation listener. at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:86) at org.g
2021-08-21 07:30:18
5132
原创 Android 各版本号对应SDK_INT值(更新到Android S)
其中SDK对应Android版本如下: public static final int BASE = 1; //Android 1.0 public static final int BASE_1_1 = 2; //Android 1.1 public static final int CUPCAKE = 3; //Android 1.5 public static final
2021-07-16 16:45:59
9671
ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件
2011-03-28
计算机测试,硬盘检测HDDlife
2009-12-09
WinRaR 3.80简体中文版
2009-12-09
BatteryMon 2.0 Build 1002 汉化版
2009-12-09
内存检测MemTest 3.8 汉化版
2009-12-09
Git-2.26.0-64-bit.rar
2020-03-26
C盘扩充工具
2014-02-26
vim 插件汇总
2013-12-17
Ubuntu 64位 Java最新安装包
2020-03-19
Audacity(音频编辑/录制)快速多轨音频编辑、录制工具
2015-11-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅