Unit1:Android

unit1

1.安卓版本

最新数据访问维基百科

2008年,android1.0
2011年,android3.0,平板失败
同年10月,android4.0,无差别使用
2014年,android5.0,ART代替Dalvik虚拟机,Android Wear,Android Auto,Android TV,穿戴、汽车、电视。
2015年,android6.0,运行时权限
2016年,android7.0,多窗口模式

2.Android特色

  • 四大组件

    1. 活动

    程序的门面,应用中看到的东西,都放在活动中。

    1. 服务

    后台默默运行,无法看到,即使退出应用,服务任然运行。

    1. 广播接收器

    接受各处广播,比如电话、短信等,也可以发送广播消息。

    1. 内容提供器

    应用程序之间共享数据,读取系统电话簿中的联系人。

  • 系统控件

  • SQLite数据库

  • 多媒体

  • 地理定位

3.创建开发环境

  • JDK

    Java软件开发包,包括运行环境,工具集合,开发类库。

  • SDK

    谷歌提供的Android开发工具包

  • Android Studio

4.解析Android目录结构

.grale和.idea 自动生成文件,不需要关心
app

build 不需要关心
libs jar包存放
src

androidTest 测试用例,自动化测试
main

java Java代码存放处
res 资源存放处,drawable图片,layout布局,values字符串
AndroidMainfast.xml 四大组件的注册和配置
test Unit Test 测试

.gitignore 模块内版本控制
app.iml 标志,不需要关心
build.gradle gradle构建脚本
proguard-rules.pro 混淆规则,不希望代码破解,代码混淆

build 编译自动生成文件,不需要关心
gradle gradle wrapper配置文件
.gitignore 版本控制
build.gradle 全局构建脚本
gradle.properties 全局配置文件
gradlew和gradlew.bat 命令行执行gradle命令。.bat是在Windows系统中运行的
HelloWorld.iml 标识InteliJ IDEA项目,不改
local.properties 指定SDK路径,不改
settings.gradle 引入模块

5.运行解析

1.AndroidMainfest.xml

注册活动,没有在A.xml中注册的活动不能使用。

<application
  	android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"             // 图标
    android:label="@string/app_name"               // 应用名称
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
        <intent-filter>                            // 确定主活动
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
 </activity>
</application>

2.Java.xxActivity

MainActivity继承AppCompatActivity(Activity的子类)。

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);    //引入布局的方法
    }
}

R.layout.hello_world 获取引用

3.res

  • drawable 图片
  • mipmap 图标
  • layout 布局
  • values
    • string 字符串
    • color 颜色
    • stytle 样式

@String/hello_world 获取引用

4.build.gradle

Android Studio采用Gradle构建项目。

Gradle构建工具,基于Groovy领域的特定语言(DSL)声明项目设置,摒弃了XML(如Ant和Maven)繁琐配置

buildscript {
	    repositories {
	        google()
	        jcenter()   //代码托管到jcenter上  
	    }

	    dependencies {
	        classpath 'com.android.tools.build:gradle:3.5.2'   //声明一个Gradle插件
	    }
	}

allprojects {
    repositories {
        google()
        jcenter()
        
    }
}

gcenter,代码管理仓库。很多Android开源项目都选择其托管项目
声明Gradle插件,因为Gradle不止Android,Java、C++都可以构建。

apply plugin: 'com.android.application'    //应用程序模块,可以直接运行
                                           //也可以添加'com.android.library'库模块,依附于其他程序模块运行
android {                                                    // 项目细节配置
    compileSdkVersion 29                   // 编译版本 29表示Android 10.0
    buildToolsVersion "30.0.2"             // 构建工具版本
    defaultConfig {
        applicationId "com.example.unit3listviewtest"
        minSdkVersion 15                   // 最低兼容
        targetSdkVersion 29                // 目标版本测试
        versionCode 1                      // 项目版本号
        versionName "1.0"                  // 项目版本名
        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
    buildTypes {                                              // 生成安装配置
		debug {                            // 测试版安装文件配置,可以忽略不写
		}
        release {                           // 正式版安装文件配置
            minifyEnabled false             // 代码是否混淆
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
                                            // 第一个txt是安卓SDK目录下,所有项目通用的混淆规则
                                            // 第二个pro是当前项目根目录,当前项目的混淆规则
        }
    }
}

dependencies {                                                 // 指定所有项目的依赖关系
    implementation fileTree(dir: 'libs', include: ['*.jar'])   // 本地依赖,本地lib下的jar包
    implementation 'androidx.appcompat:appcompat:1.2.0'        // 远程依赖
    implementation 'androidx.constraintlayout:constraintlayout:2.0.1'
    testImplementation 'junit:junit:4.12'                      // 声明测试用例库
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

依赖关系分三种
1.本地依赖 本地jar包或目录依赖
2.库依赖 对项目中的库模块添加依赖
3.远程依赖 对jcenter库上的开源项目添加依赖关系,域名:组名:版本号

6.日志工具

android日志工具类Log(android.util.Log),5中方法使用
Log.d(tag,msg)

tag:打印信息过滤,一般当前类名
msg:打印的具体内容__

名称 等级 解释
Log.v verbose 打印琐碎信息
Log.d debug 打印调试信息
Log.i info 打印比较重要的信息
Log.w warn 打印警告信息,潜在需要修复的地方
Log.e error******** 错误信息,需要尽快修复

添加过滤器

过滤器名称 作用
Firebase 谷歌提供的分析工具
No Filters 没有过滤器,所有的日志显示
Edit Filter Configuration 自定义过滤器
posted @ 2020-09-09 16:44  ssy197  阅读(92)  评论(0)    收藏  举报