自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(131)
  • 资源 (3)
  • 收藏
  • 关注

原创 Systemtrace的时候遇到的坑

使用android studio 抓取system trace 遇到的坑。

2025-03-27 14:43:13 188

原创 AndroidStudio无法识别连接夜神模拟器

逍遥安卓模拟器: adb connect 127.0.0.1:21503。网易MUMU模拟器:adb connect 127.0.0.1:7555。海马玩模拟器 :adb connect 127.0.0.1:53001。夜神模拟器:adb connect 127.0.0.1:62001。雷电模拟器:adb connect 127.0.0.1:5555。天天模拟器:adb connect 127.0.0.1:6555。1:复制配置文件进入夜神模拟器。

2025-03-26 21:18:31 316

原创 APP的启动优化

一般而言就是处理MyApplication 里面的方法,比如三方的sdk加载,IO 数据库等相关的耗时操作。然后就是首页展示需要花费的时间;主要是通过抓取cpu profile 查看call chart ,柱状图,frame火焰图,topdowm 图记录耗时点。通过搜索display 显示时间,start u0。

2025-03-26 14:44:49 98

原创 LeakCanary的分析流程

XXXXX\Downloads\2025-03-24_15-15-15_198.hprof mm.hprof 然后打开mm.hprof就可以了。当打开之后,我们主要是看柱状态图和包名过滤,然后取出强引用分析图查看异常点。在我们实际的工作中,我们常常会遇到内存泄漏,那么怎么去分析这类问题呢?然后会有一个leakmemory的初步分析,可以把文件share出来,

2025-03-25 15:24:54 157

原创 MAT 启动报错

处理方式:手动添加VM 的路径即可,注意位置。

2025-03-19 19:43:40 150

原创 内存分析工具MAT操作流程

链接: https://pan.baidu.com/s/1Bc-52qU08H6TgoTZ6y8uAw?pwd=7khg 提取码: 7khg。链接: https://pan.baidu.com/s/1J2P-wyoui2tpyY_-STOJig?通过网盘分享的文件:MemoryAnalyzer-1.16.1.20250109-win32.win32.x86_64.zip。通过网盘分享的文件:jdk-21_windows-x64_bin.exe。下载完了运行发现需要jdk 17 以上的环境。

2025-03-19 17:56:58 143

原创 OOM之dumpsys meminfo

还有看total 与 free。查看PSS不看Rss。

2025-03-19 14:51:13 167

原创 OOM_adj 的值查询

值越大越容易被杀,当内存不够的时候。

2025-03-19 12:08:43 93

原创 monitor 是不是经常看不到了?

⑧找到NAME为Android SDK Tools(Obsolete),有的可能没有后面括号中的内容,然后选中它,右下角apply,提示下载,下载完确定结束就行了。hello 我们经常搭载环境的时候发现sdk里面monitor,找不到了怎么办呢?Hide Obsolete Packages前的勾勾去掉(以防万一)

2025-03-18 13:50:54 130

原创 bindingAdapter的异常错误

BindingAdapter是一个注解,用于将自定义的方法与XML中的属性进行绑定。在自定义的BindingAdapter方法中,可以通过观察MutableLiveData对象的变化,并将新的值设置到视图上。Android XML绑定是一种在布局文件中直接绑定数据和视图的方法,可以通过在XML文件中使用特定的语法来绑定数据到视图上。然而,由于MutableLiveData是一个动态的数据对象,它的值可以随时改变,因此在XML中直接绑定MutableLiveData对象是不起作用的。

2025-03-10 21:43:17 198

原创 MVVM 的text 错误

Cannot find a setter for <Button android:text> that accepts parameter type 'androidx.databinding.ObservableArrayMap<java.lang.String,java.lang.String>'

2025-03-10 18:53:44 72

原创 gradle-wrapper

单独下载访问没有问题,在android studio 里面就有问题。替换镜像站即可,其它方法都不是太靠谱。

2025-03-07 10:13:57 100

原创 App 应用开发的性能优化

按照Google官方给出的性能优化典范中的标准,View的绘制频率保证60fps是最佳的,这就要求每帧绘制时间不超过16ms(16ms = 1000/60),虽然程序很难保证16ms这个时间,但是尽量降低onDraw方法中的复杂度总是切实有效的。不能执行成千上万次的循环操作,尽管每次循环都很轻量级,但是大量的循环仍然十分抢占CPU的时间片,这会造成View的绘制过程不流畅。在整个设计的代码优化上:通过测试发现使用rl,应用启动的时间会更短一些,这个是有差异的。布局优化的本质就是减少View的层级。

2024-12-02 15:02:12 352

原创 如何获取哪个activity启动的

3:WindowManager 看页面的。4:Toast 谁弹的。

2024-11-25 10:24:54 371

原创 trycatechfinally

‌:无论是否有异常被抛出或捕获,程序都会执行finally块中的代码。finally块通常用于释放资源或执行一些必要的清理工作。在catch块执行完毕后,无论是否有异常被捕获,程序都会继续执行finally块中的代码。‌:在finally块执行完毕后,程序会继续执行try catch finally之后的代码。‌:首先,程序会执行try块中的代码。try块中可能包含一个或多个可能会抛出异常的语句。

2024-11-18 14:41:27 305

原创 ssh key的生成密钥

t rsa 这种方式加密,也可以使用别的方式加密 -t dsa。在gerrit 中:复制.pub的公钥即可。

2024-11-14 11:27:26 333

原创 crontab 定时任务详解

使用这个命令自动定时编译。至此自动编译脚本就做好了。然后输入ctr+y保存。

2023-10-09 15:25:21 586

原创 arm-linux-gcc: 没有那个文件或目录

编译系统版本可能会出现的。

2023-09-27 14:46:11 344

原创 Android 查看手机的当时电量

行 6568: 09-06 10:48:54.783 1000 1219 3710 I battery_level: [89,4345,420]行 6571: 09-06 10:49:33.014 1000 1219 3710 I battery_level: [90,4346,420]行 6583: 09-06 10:51:57.139 1000 1219 3710 I battery_level: [94,4379,420]

2023-09-21 16:36:17 343

原创 Android R的属性奇葩添加mk

通过反复验证发现,没有相关的值。

2023-09-21 11:13:14 95

原创 Android.mk中C++使用

参考:ifeq ($(BOARD_USES_RECOVERY_AS_BOOT), true)endifendif#else#endif。

2023-09-14 16:51:15 257

原创 sed -n ‘5p‘ filename 查看某一行的内容

sed -n '5p' filename

2023-09-14 14:31:18 121

原创 你爱的升级打patch

git format-patch -1 dXXXXXXX 生成patch git format-patch -100 批量打patch。git apply --check name.patch 如果不报错就是可以直接合入。

2023-09-12 10:23:40 66

原创 在很多公司里面会使用打tag的方式保留版本

git tag|grep "xxx-dev“等分支来查看然后就是查看有冲突这些git status 会出现相关的异常然后解决相关的冲突git add .第一:git tag -a tag_release_v0.2 -m "version 0.2 released" 这里创建的是:本地 tag 实际远程还没有跟上。git tag注意:正在切换到 'tag_release_v0.2'。您正处于分离头指针状态。您可以查看、做试验性的修改及提交,并且您可以在切换。

2023-09-07 17:33:57 511

原创 User版本如何实现root功能

user版本无法实现adb pull data/system/dropbox的log。这个是我自己做的一个root的patch。

2023-09-05 16:14:32 177

原创 Android 常用的打patch的方式

git apply useroot.patch即可打成功patch。如果不报错误就是说明可以使用。

2023-09-05 15:53:39 632

原创 grep -RnIs “sahdkjsh“ /vndor/app/XXX

在某个限定范围内搜索。

2023-09-04 17:27:17 78

原创 很像Anr的anr

当然,最简单的解决方案是使用内存更多的设备,或者使用更少更小的图像,但我更喜欢更健壮的解决方案。开始时,我收到以“后台并发复制GC释放”开头的日志消息(请参见步骤3),在收到一组日志消息后,我收到两条消息(请参见步骤4),其中第一条消息以“后台并发复制GC释放”开头,第二条消息以“后台年轻并发复制GC释放”开头.这是不是意味着什么不同,或者我应该忽略这个变化。此外,图像的大小越大,该问题越容易再现。我使用档案器运行我的应用程序,同时再现问题,在上述所有步骤中,从开始到结束,内存消耗保持在同一水平。

2023-09-04 15:50:58 126

原创 第134篇 你们当向圣所举手

历经千辛万苦,风尘仆仆的朝圣者终于抵达圣城,进入圣殿,看到“夜间站在耶和华殿中”专心服侍的利未人,他们情不自禁地歌唱:“你们当向圣所举手,称颂耶和华。圣殿难道是社交场所,大家寒暄问候,恭贺彼此的成就,然后交换一下八卦故事,甚至寻找生意机会,好让我们回家后前途更有指望?你来到这里,因为神赐福给你,现在轮到你来颂扬神。耶和华啊,我要在万民中称谢你,在列邦中歌颂你。神啊,愿你崇高过于诸天;每当进入神的圣殿,我们都要“称颂耶和华”,向祂献上最真诚的赞美!“耶和华的仆人,夜间站在耶和华殿中的,你们当称颂耶和华。

2023-08-30 11:36:17 1626

原创 第129篇

神啊,求你举手,不要忘记困苦人。其实你已经观看,因为奸恶毒害,你都看见了,为要以手施行报应。无倚无靠的人把自己交托你,你向来是帮助孤儿的。至于坏人,愿你追究他的恶,直到净尽。包忠杰(Paul. H. Bartel)这样说:“在神公义的计划中,祂用完了那恶人的绳索之后,就将它砍断丢开,这些事或临到主身上,或临到信徒选民身上,都是一样。“敌人屡次苦害我,却没有胜了我”,诗人如此追忆,是要向会众见证神的大能,所以他在追忆往事之后写道:“耶和华是公义的,祂砍断了恶人的绳索。至于坏人,愿你追究他的恶,直到净尽。

2023-08-25 15:38:15 1892

原创 诗篇128章

你要吃劳碌得来的,你要享福,事情顺利。你妻子在你的内室,好像多结果子的葡萄树;你们清晨早起,夜晚安歇,吃劳碌得来的饭,本是枉然;问题是如果没有神的赏赐,无论怎么“劳碌”,都可能没有一点收成。在敬畏神的生活中,神对人类的审判(参创 3:17-19)缓和了,因为那样的劳碌是真正蒙神赐福的。“敬畏耶和华、遵行祂道的人”在家庭中所要得的赏赐,“你要吃劳碌得来的,你要享福,事情顺利”,是其中之一。“你能吃你双手赚来的食物,你便实在幸运,也万事有福!

2023-08-24 10:53:20 7241

原创 dontaudit:表示不记录违反规则的决策信息,且违反规则不影响运行(允许操作且不记录)

dontaudit:表示不记录违反规则的决策信息,且违反规则不影响运行(允许操作且不记录)

2023-08-22 14:17:05 391

原创 git stash

用于很多分支的情况,比如我在A分支修改了代码,发现要提交的是B分支,就可以使用这种方式处理。一般使用这个就是把当前的修改保存起来,然后去切分支或者更新代码啥的保存在git 本地缓存里面。git stash list列出保存的缓存。git stash pop 恢复缓存内容。

2023-08-18 17:01:23 83

原创 使用git rebase 之后的如何恢复到原始状态

使用命令git rebase 5555555567777,想把这笔修改提交到dev分支上,有时候呢?没有更新代码就这么操作出现了bug,这种操作模式和git cherry-pick 方式差不多。找到rebase 那一笔,如果有切分支,那么就切回到原来的分支上面去。那么我们常常比较懒就直接切换了:git checkout dev。你这么操作了发现:git status 还有这个变基操作。,再执行 git status 就没有 变基了。总是出现变基操作,那么怎么处理这类问题呢?常常出现的Bug是什么呢?

2023-08-18 16:30:36 1204

原创 在有一些公司只有一个原始的master分支

在一些公司常常最原始状态的时候就只有一个分支,他们没有做过多的分支,而在开发的时候却要开发人员提交代码到dev分支上面去,这个对于没有做过分支创建的人员是一件比较困难的事情。有两种方式一种是直接在gerrit 上面,界面创建分支。这样远程就创建了dev 分支了,然后就可以进行分支开发了。这个是创建本地分支,并没有与远程的相关联。另外一种就是使用命令创建分支。

2023-08-18 15:32:10 90

原创 很多公司在开发高通项目的时候都没有抓取log的相关工具

下面介绍一个兄弟分享的log工具:是基于C语言开发的高通平台下的log工具:名字是:QtiLogger-master,这个可以在github上面去搜索的到。做平台开发,开发人员常常需要现场的log,比如MTK它有自己自带的mtklog,但是高通平台常常没有平台自身的抓取log的工具,那么就需要各个公司自己去开发对应的高通平台的抓取log工具。在这个基础上进行二次开发,有一些坑需要去处理,比如有很多的.h头文件需要处理,为了尽量避免与开发的平台有更多的耦合,需要自己单独把它封装出来。

2023-08-17 11:36:55 327

原创 Android系统中如何擦除镜像替换

fastboot erase splashfastboot flash splash ./splash.img

2023-08-15 11:13:52 113

原创 如何查看发现板子存在哪些分区

marvsmart_rk3566_r:/ $ ls dev/block/by-name/

2023-07-28 16:44:24 149

原创 Android11 系统裁剪

参考这篇文章:很到位。

2023-07-27 16:26:04 309

原创 gerrit 从安装到出坑

一般公司在做代码审核的时候选择codereview gerrit来处理代码的入库的问题。它是通过提交的时候产生Change-Id: If4e0107f3bd7c5df9e2dc72ee4beb187b07151b9来决定是不是入库,一般如果不是通过这个管理,那么就是我们通常的操作git add .这种没有代码检视直接入库的行为。这种的好处的是方便快捷,不好的是,入库很随意,代码质量无法保证。对于很多的团队也是想搭建自己的gerrit,那么我下面就介绍一下搭建的过程。1.安装apache。

2023-07-25 11:37:51 939

mumuhijson.zip

HIjson工具下载包,方便使用解析数据。hijosn对于移动开发很重要,欢迎使用起来。

2019-09-16

浮动标题栏

2016-03-31

滚动的线性布局

滚动的线性布局

2016-03-29

空空如也

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

TA关注的人

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