第一行代码——第一章:你的第一行Android代码

目录:

1.1 了解全貌——Android王国简介

1.1.1 Android 系统架构

1.1.1 Android 已发布版本

1.1.3 Android 应用开发特色

1.2 手把手带你搭建开发环境

1.2.1 准备所需要的工具

1.2.2 搭建开发环境

1.3 创建你的第一个Android项目

1.3.1 创建HelloWorld项目

1.3.2 启动模拟器

1.3.3 运行HelloWorld

1.3.4 分析你的第一个Android程序

1.3.5 详解项目中的资源

1.3.6 详解build.grdle文件

1.4 前行必备——掌握日志工具的使用

1.4.1 使用Android的日志工具

1.4.2 为什么使用Log而不是用System.out

1.5 小结与点评


知识点:

1.1 了解全貌——Android王国简介

Android从面试以来已经发布了二十几个版本了,在这几年的发展过程中,谷歌建立了一个完整的生态系统。手机厂商,开发者,用户之间相互依赖,共同推荐Android的蓬勃发展。

1.1.1 Android 系统架构

Android大致分为四层架构:

Linux内核层:底层驱动,如显示,音频,相机驱动等

系统运行库层:通过C/C++库为Android系统提供特性支持(虚拟器,OpenGl|ES库,WebKit等)

应用框架层:提供各种API

应用层:所有安装在手机上的应用程序都是属于这一层的,如系统自带的联系人,短信等程序。

1.1.1 Android 已发布版本

1.1.3 Android 应用开发特色

  1. 四大组件
  2. 丰富的系统控件
  3. Sqlite数据库
  4. 强大的多媒体
  5. 地理位置定位

1.2 手把手带你搭建开发环境

1.2.1 准备所需要的工具

1.2.2 搭建开发环境

1.3 创建你的第一个Android项目

1.3.1 创建HelloWorld项目

1.3.2 启动模拟器

1.3.3 运行HelloWorld

详细请看:https://blog.csdn.net/m0_37240709/article/details/76069176

1.3.4 分析你的第一个Android程序

项目结构

  • .gradle和idea:放置的都是Android Studio 自动生成的一些文件,无需关心
  • app:项目中的代码,资源等
  • build:包含了一些在编译时自动生成的文件,无需关心
  • gradle:包含了gradle wrapper配置文件,会自动根据缓存情况决定是否联网下载gradle。Android Studio默认没有启动gradle wrapper方式,如果需要打开,可以点击 导航栏-File-Settings-Build,Execution,Deployment-Gradle,进行配置
  • .gitgnore:用来指定的目录或文件排除在版本控制之外的
  • build.gradle:项目全局的gradle构建脚本
  • gradle.properties:是全局的gradle配置文件
  • gradlew和gradlew.bat:用来在命令行执行gradle命令的,其中gradlew是在Linux或Mac中使用的,gradlew.bat是在Window系统使用的
  • HelloWorld.iml:自动生成的,用于表示这是一个IntelliJ IDEA项目
  • local.propeties:指定本机的Android Sdk路径
  • setting.gradle:指定项目所有的引用模块

1.3.5 详解项目中的资源

所有以drawable开头的文件用来放图片的,所有以mipmap开头的文件夹用来放应用图标的

程序运行后会根据屏幕的分辨率加载哪个文件下的内容

1.3.6 详解build.grdle文件

不同于Eclipse,Android Studio 是采用Gradle来构建项目的,它使用了一种基于Groovy的领域特定语言(DSL)来声明项目设置,摒弃了传统基于xml(如Ant和Maven)的各种烦琐设置。

最外层目录下的build.gradle文件,代码如下:

buildscript {
repositories {
    jcenter()
}
dependencies {
    classpath 'com.android.tools.build:gradle:2.3.3'

    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}


       这些代码都是自动生成的,通常情况下不需要修改这个文件中的内容。两处repositories闭包中都声明了jcenter(),jcenter是一个代码托管仓库,从而使得我们在项目中可以引用任何jcenter上的开源项目。dependencies闭包中使用classpath声明了一个Gradle插件,因为Gradle并不是专门为构建Android项目而开发的,Java、C++等很多种项目都可以使用Gradle来构建。如果想要使用Gradle来构建Android项目,则需要声明com.android.tools.build:gradle:2.3.3这个插件,其中,后面是插件的版本号。

        app目录下的build.gradle文件,代码如下:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    buildToolsVersion "27.0.0"
    defaultConfig {
        applicationId "com.example.helloworld"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:26.+'
    testCompile 'junit:junit:4.12'
}


        首先第一行应用了一个插件,一般有两种值可选:com.android.application表示这是一个应用程序模块;com.android.library表示是一个库模块。应用程序模块是可以直接运行的,库模块只能作为代码库附于在别的应用程序模块来运行。

android闭包:

compileSdkVersion:指定项目的编译版本。

buildToolsVersion:指定项目构建工具的版本。

defaultConfig闭包:

applicationId:指定项目的包名

minSdkVersion:指定项目最低兼容的Android系统版本

targetSdkVersion:指定项目的目标版本

versionCode:指定项目的版本号

versionName:指定项目的版本名

buildTypes闭包:

通常只会有两个子闭包:debug和release。其中debug闭包可以忽略不写。debug闭包用于指定生成测试版安装文件的配置;release闭包用于指定生成正式版安装文件的配置。

release闭包

minifyEnabled:指定是否对项目的代码进行混淆。

proguardFiles:指定混淆时使用的规则文件。proguard-android.txt是在Android SDK目录下,里面是所有项目通用的混淆规则;proguard-rules.pro是在当前项目的根目录下,里面可以编写当前项目特有的混淆规则。

dependencies闭包

指定当前项目所有的依赖关系。

compile fileTree:声明本地依赖,表示将libs目录下所有.jar后缀的文件都添加到项目的构建路径中。

compile:声明远程依赖。

testCompile:声明测试用例库。

1.4 前行必备——掌握日志工具的使用

1.4.1 使用Android的日志工具

日志工具类是Log(android.util.log)

  • Log.v():打印最为琐碎、意义最小的日志信息
  • Log.d():打印调试信息
  • Log.i():打印比较重要的数据
  • Log.w():打印警告信息
  • Log.e():打印错误信息

1.4.2 为什么使用Log而不是用System.out

System.out缺点:打印不可控制,打印时间无法确定,不能添加过滤器,日志没有级别区分。。。

那么Log就把Syso的所有缺点都改掉了吗?虽然谈不上全部,但我觉得已经做得相当不错了。

同时我们也可以通过Logcat配置打印信息 过滤器等。

1.5 小结与点评

郭霖总结:

你现在一一定会觉得很充实,甚至有点沾沾自喜。确实应该如此,因为你已经成为一-名真正的Android开发者了。通过本章的学习,你首先对Android 系统有了更加充足的认识,然后成功将Android开发环境搭建了起来,接着创建了你自己的第一一个 Android项目,并对Android项目的目录结构和执行过程有了一定的认识, 在本章的最后还学习了Android日志工具的使用,这难道还不够充实吗?

      不过你也别太过于满足,相信你很清楚,Android 开发者和出色的Android 开发者还是有很大的区别的,你还需要付出更多的努力才行。即使你目前在Java 领域已经有了不错的成绩,我也希望在Android的世界你可以放下身段,以一只萌级小菜鸟的身份起飞,在后面的旅途中你会不断地成长。

      现在你可以非常安心地休息一段时间, 因为今天你已经做得非常不错了。储备好能量,准备进人到下一章的旅程当中。

我的总结:

因为本身就是在做Android程序,所以第一章对于我来说,又加深了一些印象。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值