android studio 调试应用程序

###1. java 调试原理 java 平台的调试规范 JPDA(Java Platform Debugger Architecture) 由 3 个部分组成 Java 虚拟机工具接口(JVMTI) : 获取及控制当前虚拟机状态 Java 调试线协议(JDWP) : 定义 JVMTI 和 JDI 交互的数据格式 Java 调试接口(JDI) : 提供 Java API 来远程控制被调试虚拟机 开发人员只需使用 JDWP 和 JVMTI 即可支持跨平台的远程调试,但是直接编写 JDWP 程序费时费力,而且效率不高, JDI 不仅能帮助开发人员格式化...

android systrace

###1. systrace systrace是一个分析android性能问题的基础工具, 在系统的一些关键链路(比如System Service,虚拟机,Binder驱动)插入一些追踪信息,通过追踪信息的开始和结束来确定某个过程的执行时间,然后把这些追踪信息收集起来得到系统关键路径的运行时间信息,进而得到整个系统的运行性能信息 systrace 实质上是一系列工具的封装: ftrace : Systrace利用了Linux Kernel中的ftrace功能。所以,如果要使用Systrace的话,必须开启kernel中和ftrace相关的模块 Trace 类 : Android定义了一个Trace类。应用程序可利用该类把统计信息输出给ftrace aTrace : 从ftrace中读取统计信息然后交给数据分析工具来处理 systrace.py : 通过 atrace 配置数据采集的方式(如采集数据的标签、输出文件名等)和收集ftrace统计数据并生成一个网页文件供用户查看 ###2. 应用中使用systrace 应用中可以使用 android 提供的 java 和 native 接口来使用 systrace: java 接口 (frameworks/base/core/java/android/os/Trace.java): void beginSection(String sectionName) void...

android traceview

###1. TraceView Traceview是Android平台特有的数据采集和分析工具,它主要用于分析Android中应用程序的hotspot Traceview本身只是一个数据分析工具,而数据的采集则需要使用Android Framework中的android.os.Debug类, 或者利用 android sdk 中的 DDMS 工具, 其各自的优缺点如下: 使用 Debug 类 : 优点是测试的代码范围精确 缺点是需要修改代码并且自己导出文件 使用 DDMS 工具 : 优点是 操作简单, 不需要修改代码, 可以在任意时间 开启/关闭 trace 缺点是测试的代码范围很宽泛, 不够精确 ###2. 使用 android.os.Debug 采集trace数据 在需要profile的代码片段的首尾, 添加 Debug 类的如下方法来 开始/结束统计 public...

android 屏幕适配

###1. android 屏幕适配 由于Android系统的开放性,任何用户、开发者、OEM厂商、运营商都可以对Android进行定制,修改成他们想要的样子, 而随着支持Android系统的设备(手机、平板、电视、手表)的增多,设备碎片化、品牌碎片化、系统碎片化、传感器碎片化和屏幕碎片化的程度也在不断地加深 android 设备的屏幕尺寸这么多,为了让我们开发的程序能够比较美观的显示在不同尺寸、分辨率、像素密度(这些概念我会在下面详细讲解)的设备上,那就要在开发的过程中进行处理, 但是从几寸的智能手机,到10寸的平板电脑,再到几十寸的数字电视,我们应该适配哪些设备呢? 其实这个问题不应该这么考虑,因为对于具有相同像素密度的设备来说,像素越高,尺寸就越大,所以我们可以换个思路,将问题从单纯的尺寸大小转换到像素大小和像素密度的角度来考虑 ###2. 屏幕尺寸 / 屏幕分辨率 / 屏幕像素密度 **屏幕尺寸: **指屏幕的对角线的长度, 单位是英寸 (inch),1英寸=2.54厘米, 常见的屏幕尺寸有2.4、2.8、3.5、3.7、4.2、5.0、5.5、6.0 等 *屏幕分辨率: **指在横纵向上的像素点数单位是px (pixel),1px=1个像素点,一般以纵向像素横向像素,如1960*1080 **屏幕像素密度: **是指每英寸上的像素点数, 单位是dpi,即“dot per inch”的缩写。屏幕像素密度与屏幕尺寸和屏幕分辨率有关,在单一变化条件下,屏幕尺寸越小、分辨率越高,像素密度越大,反之越小 ###3. dp / dip Android原生API都会以px作为统一的计量单位,像是获取屏幕宽高等, 但是, 编写布局时使用 px 为单位则存在局限性, 例如, 假如同样都是画一条320px的线,在480800分辨率手机上显示为2/3屏幕宽度,在320480的手机上则占满了全屏...

使用 gradle 构建 android project

###1. Gradle Google 的 Android Studio 基于 Gradle 来构建 project, Gradle 是以 Groovy 语言为基础,面向Java应用为主,基于DSL语法的自动化构建工具 说到Java的自动化构建工具, 比Ant和Maven强大的多,而且使用起来更加方便简单并且兼容Maven ###2. 安装 Gradle Android Studio,第一次运行的时候需要自动安装Gradle,这个过程很漫长,而且有可能需要翻墙才下载的了, 最好是手动来安装, 可以前往其官网(https://gradle.org/gradle-download/)下载 以 gradle-2.10 为例, 下载 gradle-2.10-bin.zip 后, 使用如下的命令来安装 gradle $ sudo unzip gradle-2.10-bin.zip -d /opt/gradle $ sudo ln -s /opt/gradle/gradle-2.10/bin/gradle /usr/local/bin/gradle 使用 gradle -v命令, 如果显示了版本信息, 则说明安装成功 $ gradle -v Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar ------------------------------------------------------------ Gradle...