Unit1:Android
阅读原文时间:2023年07月12日阅读:2

unit1

最新数据访问维基百科

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,多窗口模式

  • 四大组件

    1. 活动

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

    1. 服务

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

    1. 广播接收器

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

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

  • 系统控件

  • SQLite数据库

  • 多媒体

  • 地理定位

  • JDK

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

  • SDK

    谷歌提供的Android开发工具包

  • Android Studio

.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 引入模块

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库上的开源项目添加依赖关系,域名:组名:版本号

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

自定义过滤器