- 博客(174)
- 资源 (46)
- 收藏
- 关注
原创 Android内存管理机制官方详解文档
很早之前写过一篇《Android内存管理机制详解》点击量已7万+,现把Google官方文档整理输出一下,供各位参考。一、内存管理概览Android 运行时 (ART) 和 Dalvik 虚拟机使用分页和内存映射来管理内存。这意味着应用修改的任何内存,无论修改的方式是分配新对象还是轻触内存映射的页面,都会一直驻留在 RAM 中,并且无法换出。要从应用中释放内存,只能释放应用保留的对象引用,使内存可供垃圾回收器回收。这种情况有一个例外:对于任何未经修改的内存映射文件(如代码),如果系统想要在其他位置使用其内
2020-12-14 16:29:40 6624 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 15042 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 54911 3
原创 基于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 24163 9
原创 Android 获取ROOT权限原理解析
一、 概述本文介绍了android中获取root权限的方法以及原理,让大家对android玩家中常说的“越狱”有一个更深层次的认识。 二、 Root的介绍1. Root 的目的可以让我们拥有掌控手机系统的权限,比如删除一些system/app下面的无用软件,更换开关机铃声和动画,拦截状态栏弹出的广告等。2. Root的原理介绍谷歌的a
2013-01-04 09:30:08 65219 19
原创 Android内存管理机制详解
与windows内存区别 在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方面,区别于 Windows的内存管理。主要特点是,无论物理内存有多大,Linux都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。而Windows是只在
2012-12-13 10:37:33 79060 8
原创 qwen2.5微调和评估
https://github.com/hiyouga/LLaMA-Factory/blob/main/examples/README_zh.md#lora-微调。使用 Adam-mini 进行全参数训练。opencompass模型评测工具。
2024-11-01 15:08:16 344
原创 多张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 624
原创 Sklearn实例:水果多分类
acc_scores = [] # 存储每个 k 值对应的准确率。plt.ylabel(“Accuracy”) # Y轴标签。plt.xlabel(“K”) # X轴标签。
2024-07-29 15:08:24 375
原创 有意思的逻辑问题:关于AB运动轨迹问题
A始终朝向B,B始终跟A垂直,如果两者速度相等,运动轨迹。// 绘制红点和蓝点之间的连线。// 延迟一段时间后更新下一帧。// 计算红点应该移动的方向。// 计算红点的新位置。// 计算蓝点的新位置。// 红点的起始位置。// 蓝点的起始位置。// 绘制红点和蓝点。
2023-03-24 15:55:59 280 1
原创 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 1121
原创 Handler标准用法(推荐)
Handler经常会出现泄露问题,原因是handler持有了activity的引用后导致activity无法被回收,如下是推荐使用的标准用法
2021-12-10 11:21:20 2529
原创 java 打包class文件到jar包
jar cvf xxx.jar xxx\其中xxx.jar是生成目标的jar包,xxx\是需要打包class所在的路径。
2021-10-20 12:34:51 755
原创 斐波那契函数
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 282
原创 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 811
原创 Android 获取Wifi列表详解(包含动态权限申请)
WLAN 扫描流程扫描流程分为三步:为 SCAN_RESULTS_AVAILABLE_ACTION 注册一个广播监听器,系统会在完成扫描请求时调用此监听器,提供其成功/失败状态。对于搭载 Android 10(API 级别 29)及更高版本的设备,系统将针对平台或其他应用在设备上执行的所有完整 WLAN 扫描发送此广播。应用可以使用广播被动监听设备上所有扫描的完成情况,无需发出自己的扫描。使用 WifiManager.startScan() 请求扫描。请务必检查方法的返回状态,因为调用可能因以下任一
2021-09-14 10:20:13 5722 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 2168
原创 基础知识精讲
现准备对如下知识点进行深度解析,将会有一系列的文章推出:binder底层实现http请求拦截器RecycleView底层线程池sqlite同步volatile关键字hashmap底层service主线程内存泄露abstract工厂模式
2021-09-06 16:47:09 150 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 8016
原创 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 680
原创 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 1097
原创 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 4942
原创 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 7944
原创 Android保存ArrayList对象到文件
在业务开发中经常会遇到需要保存对象到文件的需求,如下函数是保存ArrayList<HashMap<String, String>>对象到磁盘,并从磁盘读取还原ArrayList<HashMap<String, String>>对象的方法: /** * 保存加密后的数据到本地磁盘 * @param context 上下文 * @param data 需要保存的ArrayList<HashMap<String, String>&g
2021-05-26 11:36:10 951
原创 resource failed to call close
在运行Android项目时,日志中会出现A resource failed to call close告警信息:2021-05-26 11:26:52.564 11386-11401/com.xxx.example W/System: A resource failed to call close. 这是由于文件输入和输出流在调用后没有及时close导致的,需要在调用后手动close掉输入输出流try { FileInputStream fis = new FileInputStream(pa
2021-05-26 11:31:52 40599 1
原创 微信发送消息接口
为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模版消息库中选择模版,选择后获得模版ID,再根据模版ID向用户主动推送提醒、通知消息。模版消息调用时主要需要模版ID和模版中各参数的赋值内容。请注意:1.模版中参数内容必须以".DATA"结尾,否则视为保留字;2.模版保留符号"{{ }}"具体调用方法第一步:获取模版ID通过在模版消息功能的模版库中使用需要的模版,可以获得模版ID。第二步:请求接口请注意,URL置空,则在发送后,点击模版消息会进入一个空
2021-05-16 21:27:32 4393
原创 windows cmdline 查看 hash/md5/sha1/sha256的方法
windows 查看 hash/md5/sha1/sha256的方法certutil -hashfile 文件 [md5|sha1|sha256]
2021-04-01 14:50:43 1454
原创 android studio groovy gradle 文件遍历方法
import groovy.io.FileType def path = gradle.getGradleUserHomeDir().getAbsolutePath() + "/caches/modules-2/files-2.1/" println "path:" + path def jarList = [] new File(path).eachFileRecurse(FileType.FILES) { file -> if (file.getName
2021-03-29 14:03:39 923
原创 检查 GPU 渲染速度和过度绘制
Android 包含一些设备上的开发者选项,可帮助您直观地查看您的应用可能会在何处遇到界面渲染问题,如执行不必要的渲染工作,或执行长时间的线程和 GPU 操作。本页介绍如何调试 GPU 过度绘制问题以及如何分析 GPU 渲染问题。如需详细了解设备上的开发者选项,包括如何启用它们,请阅读配置设备上的开发者选项。分析 GPU 渲染速度GPU 渲染模式分析工具以滚动直方图的形式直观地显示渲染界面窗口帧所花费的时间(以每帧 16 毫秒的速度作为对比基准)。在性能较低的 GPU 上,可用的填充率(GPU 填充
2020-12-16 19:36:47 827
原创 GAPID: Graphics API Debugger
Git Hub网址GAPID: Graphics API Debugger下载Download the latest version of GAPID here.文档User documentation can be found at gapid.dev目前在维护的工具是AGI,Android GPU InspectorFor Android GPU debugging and profiling, please use AGI which is based on GAPID....
2020-12-16 11:18:26 527
原创 Android刘海屏适配官方指导文档
支持刘海屏刘海屏是指某些设备显示屏上的一个区域延伸到显示面,这样既能为用户提供全面屏体验,又能为设备正面的重要传感器留出空间。Android 在搭载 Android 9(API 级别 28)及更高版本的设备上正式支持刘海屏。请注意,设备制造商也可以选择在搭载 Android 8.1 或更低版本的设备上支持刘海屏。本主题介绍如何实现对带刘海屏的设备的支持,包括如何处理“刘海区域”,即显示面上包含刘海的无边框矩形。在带刘海屏的设备上有什么要求为了确保一致性和应用兼容性,搭载 Android 9 的设备
2020-12-15 13:35:47 500 2
原创 Android高效代码官方优化指南
本文主要介绍了各种微优化,如果将其配合使用,能够提高应用的整体性能;但是,这些更改不太可能对性能产生显著影响。选择正确的算法和数据结构应始终是您的首要任务,但此内容不在本文档的讨论范围内。您应该将本文档中的提示作为编码时的一般做法并养成习惯,从而提高综合代码效率。编写高效代码有两个基本规则:不需要做的工作就不要做。如果可以避免,就不要分配内存。在微优化 Android 应用时,您会遇到的最棘手的问题之一是应用肯定会在多种类型的硬件上运行。不同版本的虚拟机会在不同的处理器上以不同的速度运行。通常并
2020-12-14 13:36:22 391
原创 windows server后台运行jar文件配置方法
使用如下命令保存为run-server.bat@echo offstart xxx-server -jar D:\xxx-server-0.0.1-SNAPSHOT.jarexit找到java.exe路径,复制路径下的javaw.exe(注意不是java.exe),重命名为上面定义的xxx-server双击运行run-server.bat即可运行查看是否运行成功命令:netstat -anot | findstr 8888显示结果如下:TCP 0.0.0.0:8888 .
2020-12-07 23:09:23 2143
原创 Android ART 即时 (JIT) 编译器详解
Android Runtime (ART) 包含一个具备代码分析功能的即时 (JIT) 编译器,该编译器可以在 Android 应用运行时持续提高其性能。JIT 编译器对 Android 运行组件当前的预先 (AOT) 编译器进行了补充,可以提升运行时性能,节省存储空间,加快应用和系统更新速度。相较于 AOT 编译器,JIT 编译器的优势也更为明显,因为在应用自动更新期间或在无线下载 (OTA) 更新期间重新编译应用时,它不会拖慢系统速度。
2020-12-04 15:19:45 3955 1
原创 Android ART详细介绍及配置参数详解
本文从Google Developer 网址摘取整理,让读者可以了解ART的机制,其中包含各种编译选项如verify、quicken、speed和speed-profile含义,以及art和rom的一些常见配置参数。讨论的主题包括:系统映像预编译配置、dex2oat 编译选项,以及如何在 system 分区空间、data 分区空间和性能这三者之间取得平衡。
2020-12-04 14:53:01 4787 1
Git-2.26.0-64-bit.rar
2020-03-26
Ubuntu 64位 Java最新安装包
2020-03-19
Audacity(音频编辑/录制)快速多轨音频编辑、录制工具
2015-11-17
C盘扩充工具
2014-02-26
vim 插件汇总
2013-12-17
ASP.NET MVC Linq to SQL 实现数据库增删改(源代码)ASP.NET MVC Linq to SQL 实现数据库增删改(源代码) ASP.NET MVC 分页控件
2011-03-28
WinRaR 3.80简体中文版
2009-12-09
内存检测MemTest 3.8 汉化版
2009-12-09
BatteryMon 2.0 Build 1002 汉化版
2009-12-09
计算机测试,硬盘检测HDDlife
2009-12-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人