无标题文章

# unit1

## 1.安卓版本 

最新数据访问[维基百科](https://zh.wikipedia.org/wiki/Android%E7%89%88%E6%9C%AC%E5%88%97%E8%A1%A8)

>  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. __活动__

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

    2. __服务__

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

    3. __广播接收器__

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

    4. __内容提供器__

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

- 系统控件

- 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(tag,msg)

>tag:打印信息过滤,一般当前类名

>msg:打印的具体内容__

>1.Log.v(verbose)打印琐碎信息

>2.Log.d(debug)打印调试信息

>3.Log.i(info)打印比较重要的信息

>4.Log.w(warn)打印警告信息,潜在需要修复的地方

>5.Log.e(error)错误信息,需要尽快修复

### 添加过滤器 ###

logcat中可以快速添加三种过滤器

>Firebase,谷歌提供的分析工具

>No Filters没有过滤器,所有的日志显示

>Edit Filter Configuration,自定义过滤器

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,783评论 5 472
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,396评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,834评论 0 333
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,036评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,035评论 5 362
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,242评论 1 278
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,727评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,376评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,508评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,415评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,463评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,140评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,734评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,809评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,028评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,521评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,119评论 2 341