
android系统优化分析
文章平均质量分 94
gnnulzy
这个作者很懒,什么都没留下…
展开
-
系统级性能分析工具perf的介绍与使用
系统级性能优化通常包括两个阶段:性能剖析(performance profiling)和代码优化。性能剖析的目标是寻找性能瓶颈,查找引发性能问题的原因及热点代码。代码优化的目标是针对具体性能问题而优化代码或编译选项,以改善软件性能。在性能剖析阶段,需要借助于现有的profiling工具,如perf等。在代码优化阶段往往需要借助开发者的经验,编写简洁高效的代码,甚至在汇编级别合理使用各种指令,合理安排各种指令的执行顺序。perf是一款Linux性能分析工具。Linux性能计数器是一个新的基于内核的子系转载 2020-05-16 22:06:17 · 3283 阅读 · 0 评论 -
Android p Adding a New Device
Use the information in this page to create the makefiles for your device and product. Please note, unlike the other pages in this section, the contents here are applicable only when creating an entire...翻译 2019-07-02 20:02:13 · 554 阅读 · 0 评论 -
Android P 系统开发--添加新设备
Android系统开发--添加新设备了解编译层编译产品编写配置产品的Makefile配置产品的编译文件关系使用编译类型编译类型userdebug 准则利用资源叠加层定制版本设置 ANDROID_VENDOR_KEYS 以通过 USB 进行连接了解编译层编译层次结构包括与设备的物理结构对应的抽象层。下表中介绍了这些层。每个层都与上一层存在一对多的关系。例如,一个架构可以有多个板...翻译 2019-07-02 19:55:53 · 714 阅读 · 0 评论 -
深入理解CMA
LinuxKernelMemoryManagement摘要:连续内存分配(简称CMA) 是一种用于申请大量的,并且物理上连续的内存块的方法,在LWN上可以追溯到2011年6月。原理虽简单,但是其实现起来却相当复杂,因为需要许多子系统之间相互协作。基于不同人的视角,有很多不同的事需要完成和注意。在本文中,我会描述如何使用CMA并且如何将其集成到一个特...连续内存分配(简称CMA)转载 2017-12-06 21:40:28 · 1929 阅读 · 0 评论 -
設置Linux保留物理內存arm_memblock_init並使用 (1)
阅读目录(Content)平臺參考博文代碼調用方法一方法二方法三在Linux系統中可以通過memblock來設置系統保留物理內存,防止這些內存被內存管理系統分配出去。 作者: 彭東林郵箱: pengdonglin137@163.com 回到顶部(go to top)平臺硬件平臺: TQ2440Linux版本:L转载 2017-12-06 21:27:48 · 1070 阅读 · 0 评论 -
How to check memory leaks in android app?
什么是内存泄漏?有些对象只有有限的生命周期。当它们的任务完成之后,它们将被垃圾回收。如果在对象的生命周期本该结束的时候,这个对象还被一系列的引用,这就会导致内存泄漏。持续累加,内存很快被耗尽。比如,当 Activity.onDestroy 被调用之后,activity以及它涉及到的 view 和相关的 bitmap 都应该被回收。但是,如果有一个后台线程持有这个 activ转载 2017-12-06 11:30:32 · 653 阅读 · 0 评论 -
内存问题的排查工具和方法– Clang的AddressSanitizer
How to use asan to debug native memory bugs?AddressSanitizer (ASan)是Google开发的一款用于检查Native内存错误的工具,类似于Valgrind。其官网介绍如下:AddressSanitizer (ASan) is a fast compiler-based tool for detecti原创 2017-12-05 21:15:23 · 4995 阅读 · 0 评论 -
Android文件系统保护——dmverity
研究dmverity比较早了,从4.4的版本就开始。前期的版本由于文件系统限制,不能直接使用。手机的文件系统格式又比较多。jffs2和romfs,ramfs用的比较多。所以限制了这个技术的使用。随着版本一步一步升级。谷歌终于决定统一该技术了。Android 5.x OTA Update官方文档(三、模块式OTA)转自http://blog.youkuaiyun.com/hu转载 2016-10-25 11:25:09 · 1942 阅读 · 0 评论 -
android:分享 一个很强大的LOG开关---Log.isLoggable
一。如果我们在开发过程中只要debug状态时打印log,在release环境就不会打印log,可如下封装(适用于gradle编译):就是检测BuildConfig.DEBUG的值if (BuildConfig.DEBUG) {Log.v(tag, message);}二。控制打印某个log level以下的日志if (BuildConfi转载 2017-04-25 11:02:04 · 3249 阅读 · 0 评论 -
SurfaceFlinger启动过程分析(一)、(二)、(三)、(四)【转】
文章出处:http://danielwood.cublog.cn作者:Daniel Wood SurfaceFlinger的启动过程还是从Zygote说起。Zygote起来后会调用SystemServer.java[frameworks/base/services/java/com/android/server]里面的main函数,然后调用本地函数init1()转载 2017-04-25 16:01:11 · 312 阅读 · 0 评论 -
Android中使用am命令实现在命令行启动程序详解
在Android中,除了从界面上启动程序之外,还可以从命令行启动程序,使用的是命令行工具am.复制代码代码如下:usage: am [subcommand] [options] start an Activity: am start [-D] -D: enable debugging send a broadcast I转载 2017-04-26 17:11:17 · 525 阅读 · 0 评论 -
android 7.0 (nougat)的编译优化-ninja
从官方的定义,ninja大大缩短了Android系统的编译周期,android 7.0即nougat上已经默认使用,禁用方式: export USE_NINJA = false 从build/core/main.mk看,ninja要执行两遍main.mk的扫描,第一次执行导入android环境和产品的基本配置信息,但不扫描Android.mk; 第二次扫描时定义BUILDING_W转载 2017-05-27 17:14:35 · 635 阅读 · 0 评论 -
Android shell命令行中过滤adb logcat输出的几种方法
我们在Android开发中总能看到程序的log日志内容充满了屏幕,而真正对开发者有意义的信息被淹没在洪流之中,让开发者无所适从,严重影响开发效率。本文就具体介绍几种在shell命令行中过滤adb logcat输出的方法。 1、只显示需要的输出(白名单) 最方便的当然是通过管道使用 grep 过滤了,这样可以使用 grep 强大的正则表达式匹配。简单的匹配一行转载 2017-06-14 18:49:21 · 556 阅读 · 0 评论 -
dumpsys命令的用法
dumpsys命令是android手机自带的调试工具,下面详解讲解dumpsys用法一. 初识dumpsysadb shell //进入手机shelldumpsys | grep "DUMP OF SERVICE" //列举当前手机所有支持的dumpsys命令1212运行上面指令,结果(不同手机结果会有所差异)DUMP O转载 2017-06-23 16:46:15 · 831 阅读 · 0 评论 -
Android low memory killer 详解
Android在内存管理上与linux有些小的区别。其中一个就是引入了Low memory killer .1,引入原因 Android是一个多任务系统,也就是说可以同时运行多个程序,这个大家应该很熟悉。一般来说,启动运行一个程序是有一定的时间开销的,因此为了加快运行速度,当你退出一个程序时,Android并不会立即杀掉它,这样下次再运行该程序时,可以很快的启动。随着系转载 2017-06-30 17:47:17 · 409 阅读 · 0 评论