单位
dp
布局用这个, 与px
换算公式 dp(value)=(int) (px(value)/1.5 + 0.5)
sp
用于字体大小的单位
颜色一般使用16进制定义好常量存在资源文件里面
字符串也是不建议hardcode
,也需要定义常量
Manifest
配置文件常用的几个标签??
- manifest
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" package="com.example.dev" android:installLocation="auto">
package 声明包名;
xmlns 命名空间的声明,使得各种Android系统级的属性能让我们使用。
installLocation 程序的安装位置,
有三个值可以选择:internalOnly、auto、preferExternal
分别为只能装内置内存中、可相互转移,优先装入SD卡中。
- uses-configuration
这个属性用于指定该应用程序所需要的硬件和软件功能
<uses-configuration android:reqFiveWayNav=["true" | "false"] android:reqHardKeyboard=["true" | "false"] android:reqKeyboardType=["undefined" | "nokeys" | "qwerty" | "twelvekey"] android:reqNavigation=["undefined" | "nonav" | "dpad" | "trackball" | "wheel"] android:reqTouchScreen=["undefined" | "notouch" | "stylus" | "finger"] />
- supports-screens
声明应用支持的分辨率类型
resizeable 是否可以调整尺寸,增加屏幕适配的兼容性
anyDensity 是否包含了能够适用于任何屏幕密度的资源
<supports-screens android:anyDensity="true" android:largeScreens="true" android:normalScreens="true" android:resizeable="true" android:smallScreens="true" android:xlargeScreens="true" />
- uses-permission
应用所需权限的声明,常用权限声明
<!-- 用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 用于访问GPS定位 --> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位 --> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 用于访问网络,网络定位需要上网 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 用于读取手机当前的状态 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" /> <!-- 写入扩展存储,向扩展卡写入数据,用于写入缓存定位数据 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <!-- 拨打电话 --> <uses-permission android:name="android.permission.CALL_PHONE" /> <!-- 调用相机 --> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <!-- 调用闪光灯 --> <uses-permission android:name="android.permission.FLASHLIGHT" /> <!-- 震动器 --> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <!-- 读取通讯录 --> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" />
- application
设置应用整体属性
name 设置Application
label 设置应用名
icon 启动图标
theme 应用统一theme
largeHeap 请求开辟更大的应用内存
hardwareAccelerated 全局开启硬件加速。不推荐在application中开启,非要开可以在单独使用的activity标签中开,避免过大内存开销。
debuggable 指定应用程序是否能够被调试
process 这个属性用于定义一个进程名称
- activity
screenOrientation 设置当前Activity固定屏幕方向
configChanges 配置的内容变化是否重启生命周期
launchMode 设置当前Activity启动模式
exported 设置该activity是否可以被其他应用启动,设置为true也可以直接启动就进入该activity
windowSoftInputMode 共9个属性,可以分别为软键盘设置始终隐藏,始终显示,大小调整等类型
taskAffinity 指定在任务栈的标识
hardwareAccelerated 开启硬件加速
- meta-data
这个元素用name-value对的格式给其父组件提供任意可选的数据。
比如各种第三方sdk设置key使用的方式
<!-- 友盟Key配置 --> <meta-data android:name="UMENG_APPKEY" android:value="" /> <meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}" /> <!-- 高德地图 --> <meta-data android:name="com.amap.api.v2.apikey" android:value="" />
生命周期介绍
如图:
public class Activity extends AppCompatActivity {
//类似iOS的viewDidLoad Activity生命周期内只会调用一次
protected void onCreate(Bundle savedInstanceState);
//类似iOS的viewWillAppear 视图将要出现
protected void onStart();
//重新出现
protected void onRestart();
//类似iOS的viewDidAppear 视图已经出现 变得活跃
protected void onResume();
//类似iOS的viewWillDisAppear 视图将要消失
protected void onPause();
//类似iOS的viewDidDisAppear 视图已经消失 不再活跃
protected void onStop();
//类似iOS的delloc 析构函数
protected void onDestroy();
}
罗列一下各个生命周期函数的调用时机:
- 启动过程
onCreate
onStart
onResume
- 按返回键
onPause
onStop
onDestroy
- 按home键
onPause
onStop
- 然后再次进入(Activity未被销毁)
onRestart
onResume
- activity弹出和关闭dialog
- 弹出调用
onPause
- 关闭调用
onResume
- 弹出调用
- 两个activity跳转执行方法:
A
,B
,当在A
里面启动B
,A
调用onPause
,B
调用onCreate
,onStart
,onResume
.然后B
窗口覆盖A
窗口,A
再调用onStop
B
回退到A
,B
调用onPause
,A
调用onRestart
,onResume
,B
调用onStop
Activity间传值方式
- intent传值
- 静态变量传值
- application保存获取值
- startactivityforresult传值
- 接口回调传值
- Eventbus等库传值
定义颜色
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="colorPrimary">#6200EE</color>
<color name="colorPrimaryDark">#3700B3</color>
<color name="colorAccent">#03DAC5</color>
<color name="redColor">#ff0000</color>
<color name="greenColor">#00ff00</color>
<color name="blueColor">#0000ff</color>
<color name="yellowColor">#ffff00</color>
<color name="cyanColor">#00ffff</color>
<color name="pinkColor">#ff00ff</color>
<color name="blackColor">#000</color>
<color name="whiteColor">#fff</color>
<color name="orangeColor">#ff8800</color>
</resources>
原文地址:https://www.cnblogs.com/wgb1234/p/12626732.html