Android入门基础知识汇总

Posted wgb1234

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android入门基础知识汇总相关的知识,希望对你有一定的参考价值。

单位

dp 布局用这个, 与px换算公式 dp(value)=(int) (px(value)/1.5 + 0.5)

sp 用于字体大小的单位

颜色一般使用16进制定义好常量存在资源文件里面

字符串也是不建议hardcode,也需要定义常量

Android上dip、dp、px、sp等单位说明

Manifest配置文件常用的几个标签??

  1. 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卡中。

  2. 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"] />
    
  3. supports-screens

    声明应用支持的分辨率类型

    resizeable 是否可以调整尺寸,增加屏幕适配的兼容性
    anyDensity 是否包含了能够适用于任何屏幕密度的资源

        <supports-screens
            android:anyDensity="true"
            android:largeScreens="true"
            android:normalScreens="true"
            android:resizeable="true"
            android:smallScreens="true"
            android:xlargeScreens="true" />
    
  4. 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" />
    
  5. application

    设置应用整体属性

    name 设置Application
    label 设置应用名
    icon 启动图标
    theme 应用统一theme
    largeHeap 请求开辟更大的应用内存
    hardwareAccelerated 全局开启硬件加速。不推荐在application中开启,非要开可以在单独使用的activity标签中开,避免过大内存开销。
    debuggable 指定应用程序是否能够被调试

    process 这个属性用于定义一个进程名称

  6. activity

    screenOrientation 设置当前Activity固定屏幕方向
    configChanges 配置的内容变化是否重启生命周期
    launchMode 设置当前Activity启动模式
    exported 设置该activity是否可以被其他应用启动,设置为true也可以直接启动就进入该activity
    windowSoftInputMode 共9个属性,可以分别为软键盘设置始终隐藏,始终显示,大小调整等类型
    taskAffinity 指定在任务栈的标识
    hardwareAccelerated 开启硬件加速

  7. 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();
 }

罗列一下各个生命周期函数的调用时机:

  1. 启动过程

    • onCreate
    • onStart
    • onResume
  2. 按返回键

    • onPause
    • onStop
    • onDestroy
  3. 按home键

    • onPause
    • onStop
    • 然后再次进入(Activity未被销毁)
      • onRestart
      • onResume
  4. activity弹出和关闭dialog

    • 弹出调用onPause
    • 关闭调用onResume
  5. 两个activity跳转执行方法:

  • A,B,当在A里面启动BA调用onPause,B调用onCreate,onStart,onResume.然后B窗口覆盖A窗口,A再调用onStop
  • B回退到AB调用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>



















以上是关于Android入门基础知识汇总的主要内容,如果未能解决你的问题,请参考以下文章

android小知识点代码片段

jQuery入门基础知识点汇总

《C#零基础入门之百识百例》(四十七)类的运算符 -- 学生成绩汇总

Java快速入门-03-小知识汇总篇(全)

汇总:入门与实战

汇总:入门与实战