包含标签 课程 的文章

课程3: Android系统知识(一)

Android系统知识 这一部分主要针对Androi系统整个框架,列出几个重要的Android系统关系图,进行讲解一下; 因为Android基于Linux内核,所以先从Linux基础开始讲解,然后再逐渐引入Android系统框架; Linux Kernel Map Linux Kernel Map这一张图主要是针对开发人员提供的,有兴趣的童鞋可以大致了解一下; 源链接 若对Android Kernel与Linux Kernel的差异感兴趣,可以参考这里 ANDROID LINUX KERNEL ADDITIONS 简单列举如下: binder: 进程通信驱动 ashmem: 匿名共享内存驱动 pmem: process memory allocator logger: 打印日志驱动 wake locks: 一但有用户层、或Kernel拿到此锁就阻止手机进入低功耗状态 early suspend: Linux电源管理的扩展,LCD、重力感应、传感器依赖于它才能在睡眠时工作; oom handling: android out of memory killer, 内存管理(以前Android手机内存很小,这个很有必要) android alarm: 闹钟服务,允许用户空间控制闹钟 android paranoid network security: 通过uid控制网络访问权限 android timed output/gpio: 暴露定时gpio模块到用户空间,供震动模块调用 android ram console: 允许保存一部分printk信息到一小段内存上/proc/last_kmsg,方便调试 other android differences: yaffs2, bluetooth, scheduleer, adb Map of GNU/Linux OS Internals 这是一张GNU/Linux系统各层调用关系图,利用它,我们可以进一步完善SSLVPN、VMP和VDC等案例的设计;……

阅读全文

课程1: Android测试技巧(一)

常用工具 主题:主要讲解一些常用的一些命令行,及定位问题的方法 抓图:screencap screencap -p /sdcard/Pictures/ScreenShot_$(date +%F_%H-%M-%S).png Kernel版本信息: cat /proc/version Kernel接收传入参数: cat /proc/cmdline 清空并抓取Logcat日志: adb logcat -c && adb logcat -v threadtime Logcat日志显示详细时间、进程名称: adb logcat -v threadtime Top显示占用CPU、内存最多的应用程序: adb shell for n in $(busybox seq 1 100); do top -m 5 -d 3 -t -n 1 | \ busybox awk '{now=strftime("%Y-%M-%d %T "); print now $0}’ done Vmstat输出信息查看及分析(各列定义及问题排查见另一篇文档): adb shell vmstat -d 3 -n 100 | busybox awk '{now=strftime("%Y-%M-%d %T "); print now $0}' 网络分析:……

阅读全文

课程1: Android测试技巧(二)

Bug定位技巧 今天比较匆忙,准备得不算很多; 首先来针对一些普通的Bug来分析一下如何定位一个Bug的问题; 一些方法运用好,可以更好的重现一些难以重现的问题,并或许还可以提供有效的Bug解决方法。 日志输出,依据logcat输出的进程号来定位问题(如EasyConnect,以下截图仅举例): 日志输出,依据Logcat输出的详细时间来定位问题(如发现问题的那一分钟内、以下截图仅举例): 输出报告,adb bugreport 善于使用索引工具,如OpenGrok 外网可以参考:AndroidXRef 内网可以参考:AndroidOS4C, 内网有权限控制 ……

阅读全文