- 博客(65)
- 资源 (13)
- 收藏
- 关注
原创 android 性能调整方案总结
所在的进程组会随着进程变化而变化。主线程的优先级会随着状态的变化被系统动态调整(oom_score_adj、procState、schedGroup 前后台等)子线程的优先级的设定也会抢占到主线程,不易过高。echo 919 > /dev/cpuset/foreground/tasks // 919对于的进程号。/sys/devices/system/cpu/cpu*/online写入0(代表关闭)//第*个cpu。/proc/cpufreq/cpufreq_oppidx 写入5(5hz)//cpu频率。
2024-05-08 17:31:12 268
原创 android车机代码结构分析
Car API:(android.car.jar) 在内的 API:/platform/packages/services/Car/car-lib。详情看下https://blog.csdn.net/ke52013/article/details/118854887。CarService:系统中与车相关的服务:/platform/packages/services/Car/Car App:包括OEM和第三方开发的App: packages/apps/Car/hardware // HAL层,
2024-04-18 14:11:00 263 1
原创 ai开发之 环境搭建
它的开发语言是python,编辑工具选vscode,pycharm。1 anaconda下载地址:(可以不装,自己安装python)cmd里面验证:python --version。还有python版本管理工具:anaconda。cmd里面验证:conda --version。vscode里面装下python插件即可。2 python 下载地址。3 vscode 下载地址。
2024-03-22 19:54:28 157
原创 图片优化总结
如果不进行缓存,尽管看到的是同一张图片文件,但是使用BitmapFactory类的方法来实例化出来的Bitmap,是不同的Bitmap对象。图片复用主要就是指的复用内存块,不需要在重新给这个bitmap申请一块新的内存,避免了一次内存的分配和回收,从而改善了运行效率。Bitmap内存占用 ≈ 像素数据总大小 = 图片宽 x 图片高 x(设备分辨率/资源目录分辨率)² x 每个像素的字节大小。BitmapFactory获取Bitmap图片以及解决OOM异常。缓存通用的Bitmap对象。
2024-03-07 17:37:39 348
原创 android aidl进程间通信封装通用实现-用法说明
android 进程间通信 流程复杂,细节又比较多,如何能一键集成aar就能拥有该功能呢,该篇是如何使用的demo及源码上传。
2024-02-19 10:18:35 629
原创 android aidl进程间通信封装通用实现
android 进程间通信 流程复杂,细节又比较多,如何能一键集成该功能呢,我尝试做了个封装,通用的aidl通信aar包
2024-02-15 08:42:06 1246 2
原创 aidl复杂流程封装
这样就可以通过key值进行针对性传输,也可以找到该监听类,不再通过RemoteCallbackList来移除监听类了。4 提供异步和同步访问,因为有些操作同步会导致 service 卡顿(四大组件之一的服务是运行在主线程),所以是需要提供下异步操作的。2 通过添加封装类对 aidl的连接流程进行封装,本地的也封装以下(虽然本地的bind可以直接进程内通信)很累很麻烦,使用还不方便,所以我必须设计一个aar包,将这些细节全都封进去,以后再也不关心这些破玩意了。//本地bind,进程内通信。
2024-02-05 17:40:38 878
原创 eventbus增加个缓存池
由于项目中通信大部分是通过eventbus来发送的,有些场景频繁发送消息,会造成内存上升所以我们加了个缓冲池,类似handler的message消息。
2024-02-02 16:02:09 1474
原创 改造mvp为mvvm模式
交互事件的处理放到fragment里了(fragment也主要是调用viewmodel来处理),view只负责提供页面数据的展示。数据控制给到 ViewModel ,viewmodel 处理完后通过 MutableLiveData传递对象到 fragment里,fragment现在负责了view的交互事件,以及生命周期变化时候对view的控制,以及对 viewmodel的数据的更新。2 这个主要没有通过框架对代码的流程和编写进行限制,我在考虑是否在搞一层限制以下。整体改造后,感觉清晰了很多。
2024-02-01 15:47:15 222
原创 启动优化总结
很久以前有个项目进行了启动优化,当时自己弄了好久现在拿出来看下,确实很简单,看了下网上的一些启动框架确实没法比,不过很适合我们导航项目,记录下来,以后慢慢改进。
2024-01-31 17:47:07 312
原创 写下关于生命周期的注意点
onDetachedFromWindow() 当view离开附着的窗口时触发,即是在activity的ondestroy的时候调用(最后的释放资源的机会)onWindowVisibilityChanged(int) 当窗口中包含的可见的view发生变化时触发(可以释放资源)注释2的时候 才是可以看到的时候,不过我们可以监听 onWindowVisibilityChanged 就行了。1 fragment中的show()和hide()的时候,会调用onHiddenChanged()方法。
2024-01-29 18:23:29 301
原创 android tts播报破音解决方案汇总
tts放入app进程会受当前app的业务影响,导致tts 不稳定,尤其是导航app,大量的cpu,内存占用是常有的事,可单独放到一个独立进程里,并且启动个前台服务提高优先级。//类似生产者,消费者的一个读写类(每写一次,都给一次取的机会,目的是不耽误取出播报的节奏)//等待先写入数据一定的数据,防止进来就破音。一种是 开始的那帧数据进行音量从零渐进增加到当前音量,结束的那几帧数据进行音量从当前音量降到零。//系统一次处理的数据块的最小值,小于的话,就会破音。//需先等待最小的间隔时间,保持播报节奏。
2024-01-29 10:34:20 1149
原创 代码设计思路总结2
一个主列表处理类,一个子列表处理类,一个列表类管理(因为主列表和子列表有些操作是不一致的,需要一个类似adapter的类来转换和管理)这个后期就会感觉代码比较乱了,这个时候不得不重新设计了,但我并没有把设计好的传上去,后期是不能大改动的,所以下次得长记性。以后做这类功能的时候,还是要提前将功能能独立的对立,能统一管控的就加个专门管控的类。嗯,没有用到啥模式,也没用到啥框架,但我感觉有用,应该还可以再优化,有空时候再看看。这个一开始的设计比较简单,一个处理选项卡数据的类,一个处理搜索数据的类。
2024-01-26 18:02:51 234
原创 代码设计思路总结
突然想到了代码设计思想这里是要写篇文章记录一下这个方面也是需要持续跟进优化的,这里不讲六大原则和框架原理,主要是总结实际开发中的感悟和积累我觉得可以根据需求的大小可以针对性的整理一下。
2024-01-25 22:08:21 431
原创 可以发消息的子线程handler封装类
刚解了个bug,写下来:项目中需要用到不停的接收消息并分发的需要但有些消息需要主线程,有些需要子线程,就是不能在当前线程(系统服务,不能直接在该服务里操作,崩溃的话,会导致该服务也崩溃)这里封装了个支持发送主线程,子线程消息的类。用法简单:像使用主线程的handler一样处理即可。
2024-01-25 18:11:26 1204
android 可以根据数值动态改变控件的大小的控件
2018-07-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人