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>

原文地址:https://www.cnblogs.com/wgb1234/p/12626732.html

时间: 2024-10-08 18:01:24

Android入门基础知识汇总的相关文章

沉淀,再出发:Java基础知识汇总

沉淀,再出发:Java基础知识汇总 一.前言 不管走得多远,基础知识是最重要的,这些知识就是建造一座座高楼大厦的基石和钢筋水泥.对于Java这门包含了编程方方面面的语言,有着太多的基础知识了,从最初的语法,对象的定义,类.接口.继承.静态.动态.重载.覆盖这些基本的概念和使用方法,到稍微高级一点的多线程,文件读写,网络编程,GUI使用,再到之后的反射机制.序列化.与数据库的结合等高级一点的用法,最后将设计模式应用其中,产生了一个个新的概念,比如Spring.Spring MVC.Hibernat

NLP汉语自然语言处理入门基础知识介绍

NLP汉语自然语言处理入门基础知识介绍 自然语言处理定义: 自然语言处理是一门计算机科学.人工智能以及语言学的交叉学科.虽然语言只是人工智能的一部分(人工智能还包括计算机视觉等),但它是非常独特的一部分.这个星球上有许多生物拥有超过人类的视觉系统,但只有人类才拥有这么高级的语言. 自然语言处理的目标是让计算机处理或说"理解"自然语言,以完成有意义的任务,比如订机票购物或QA等.完全理解和表达语言是极其困难的,完美的语言理解等效于实现人工智能. 自然语言处理涉及的几个层次: 作为输入一共

linux入门基础知识及简单命令介绍

linux入门基础知识介绍 1.计算机硬件组成介绍 计算机主要由cpu(运算器.控制器),内存,I/O,外部存储等构成. cpu主要是用来对二进制数据进行运算操作,它从内存中取出数据,然后进行相应的运算操作.不能从硬盘中直接取数据. 内存从外部存储中取出数据供cpu运存.内存的最小单位是字节(byte) 备注:由于32的cpu逻辑寻址能力最大为32内存单元.因此32位cpu可以访问的最大内存空间为:4GB,算法如下: 2^32=2^10*2^10*2^10*2^2 =1024*1024*1024

ffmpeg入门基础知识

获取ffmpeg源代码 如果你是在Windows环境下,则可以先装SVN的一个客户端TortoiseSVN(非常好用,强烈推荐),他安装完成后会集成在右键菜单中,点Checkout菜单,在弹出的界面中输入:svn://svn.mplayerhq.hu/ffmpeg/trunk,然后选择一个本地目录,按确定就可以把ffmpeg的源代码下载到你指定的目录中了. FFMPEG功能 视频音频格式转换 关于 frame的一些基本知识 帧速率 帧速率是每秒显示的图像数.标准影片(NTSC) 是29.97 帧

Delphi基础知识汇总

☆Delphi基础数据类型 分类 范围 字节 备注 简单类型 序数 整数 Integer -2147483648 .. 2147483647 4 有符号32位 Cardinal 0 .. 4294967295 4 无符号32位 Shortint -128 .. 127 1 有符号8位 Smallint -32768 .. 32767 2 有符号16位 Longint -2147483648 .. 2147483647 4 有符号32位 Int64 -263 .. 263 8 有符号64位 Byt

USB入门基础知识(转)

源:USB入门基础知识 相关名词: 主机(Host) 设备(Device) 接口(Interface) 管道(Pipe) 管道是主机与设备端点数据传输的连接通道,代表了主机的数据缓冲区与设备端点之间交换数据的能力.管道包括数据流管道和消息管道. Such associations between the host software and a USB device endpoint are called pipes. 端点(Endpoint) 端点,实际上是设备硬件上具有一定大小的数据缓冲区.U

1)Linux程序设计入门--基础知识

1)Linux程序设计入门--基础知识 Linux下C语言编程基础知识 前言: 这篇文章介绍在LINUX下进行C语言编程所需要的基础知识.在这篇文章当中,我们将 会学到以下内容: 源程序编译 Makefile的编写 程序库的链接 程序的调试 头文件和系统求助 1.源程序的编译 在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器. 下面我们 以一个实例来说明如何使用gcc编译器. 假设我们有下面一个非常简单的源程序(hello.c): int main(int argc,

PB编程基础知识汇总

PB编程基础知识汇总 第一章      1.  程序的开始,application的open事件. 退出程序例程:halt为退出函数 int SureQuit SureQuit = 2 SureQuit=Messagebox("退出系统","退出前请确认已保存好数据",Question!,OKCancel!, 2) if SureQuit = 1 then halt 2.  变量定义有效范围: ◎     declare-globe 全局变量,整个程序均有效 ◎  

android开发基础知识了解

JDK下载:www.oracle.com; SDK下载:www.android.developer.com; eclipse下载:www.eclipse.org; android开发基础知识了解