学习Android官方文档(一)

1、关于View和ViewGroup

Android 应用的图形界面使用View对象和ViewGroup对象层次结构而构建。View对象通常为按钮或文本字段之类的 UI 小部件。而ViewGroup对象则为不可见的视图容器,它们定义子视图的布局,比如是网格布局还是垂直列表布局。

简单理解,View就是使用的组件,如按钮、输入框等,而ViewGroup则是布局,如线性布局(LinearLayout)、相对布局(RelativeLayout)。

2、关于“android:layout_weight”权重

为何使用了这个属性,其对应方向上的“android:layout_width”(或“android:layout_hight”)要设置为“0dp”

将宽度或高度设置为零 (0dp) 可提高布局性能,这是因为如果将宽度设置为"wrap_content",则会要求系统计算宽度,而该计算最终毫无意义,因为 weight 值还需要计算另一个宽度,才能填满剩余空间。

3、关于支持多种语言

如需添加对更多语言的支持,请在内创建额外的 valuesres/目录,并在目录名称末尾加上连字符和 ISO 语言代码。例如,values-es/目录包含的简单资源用于语言代码为“es”的语言区域。Android 根据运行时设备的语言区域设置加载相应的资源。

例如,默认是values,中文是values-zh。string.xml文件内同一处的字符串要有相同的名字。

4、关于支持多设备

不同Android设备的屏幕都有两个属性:尺寸(size)和密度(density)

四种通用的尺寸: small, normal, large, xlarge

四种通用密度: low (ldpi), medium (mdpi), high (hdpi), extra high (xhdpi)

在使用图片资源时,四种密度的比例为:

xhdpi:hdpi:mdpi(baseline):ldpi=2:1.5:1:0.75

5、使用主题

application和activity等均包含一个属性“android:theme”,Android官方提供了非常多使用的主题。

例如:将一个Activity显示成对话框:@android:style/Theme.Dialog;

透明主题:@android:style/Theme.Translucent

6、压缩代码和资源

(1)代码压缩

代码压缩通过 ProGuard 提供,ProGuard 会检测和移除封装应用中未使用的类、字段、方法和属性,包括自带代码库中的未使用项。ProGuard 还可优化字节码,移除未使用的代码指令,以及用短名称混淆其余的类、字段和方法。混淆过的代码可令您的 APK 难以被逆向工程,这在应用使用许可验证等安全敏感性功能时特别有用。

要启用通过 ProGuard 实现的代码压缩,请在build.gradle文件相应的构建类型中添加minifyEnabled true。例如:

学习Android官方文档(一)_第1张图片

注意:

除了minifyEnabled属性外,还有用于定义 ProGuard 规则的proguardFiles属性:

getDefaultProguardFile(‘proguard-android.txt')方法可从 Android SDKtools/proguard/文件夹获取默认 ProGuard 设置。

提示:要想做进一步的代码压缩,可尝试使用位于同一位置的proguard-android-optimize.txt文件。它包括相同的 ProGuard 规则,但还包括其他在字节码一级(方法内和方法间)执行分析的优化,以进一步减小 APK 大小和帮助提高其运行速度。

(2)资源压缩

资源压缩通过 Android Plugin for Gradle 提供,该插件会移除封装应用中未使用的资源,包括代码库中未使用的资源。它可与代码压缩发挥协同效应,使得在移除未使用的代码后,任何不再被引用的资源也能安全地移除。

要启用资源压缩,请在build.gradle文件中将shrinkResources属性设置为true(在用于代码压缩的minifyEnabled旁边)。例如:

学习Android官方文档(一)_第2张图片

你可能感兴趣的:(学习Android官方文档(一))