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

知识点目录

  • 1.1 了解全貌——Android王国简介
    * 1.1.1 Android系统架构
    * 1.1.2 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.gradle文件
  • 1.4 前行必备——掌握日志工具的使用
    * 1.4.1 使用Android的日志工具
    * 1.4.2 为什么使用Log而不使用System.out
  • 1.5 小结与点评

知识点回顾

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

无知识点

1.1.1 Android系统架构
  • Linux内核层

    为Android设备的各种硬件提供底层的驱动

  • 系统运行库层

    通过一些C/C++库为Android系统提供特性支持;还有Android运行时的库。

  • 应用框架层

    提供了构建应用程序时可能用到的各种API。

  • 应用层

    安装在手机上的应用程序

1.1.2 Android已发布的版本

最新数据可以访问如下网址:

https://developer.android.google.cn/about/dashboards/index.html

1.1.3 Android应用开发特色
  • 四大组件

    Activity、Service、BroadcastReceiver、ContentProvider

  • 丰富的系统控件

  • SQLite数据库

  • 强大的多媒体

  • 地理位置地位

  • and so on

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

无知识点

1.2.1 准备所需要的工具

能翻墙的前提下,到Android官网下载开发工具

https://developer.android.google.cn/studio/index.xml

如果不能翻墙,则到下面的网址去下载。

http://www.androiddevtools.cn/

1.2.3 搭建开发环境

下载Android Studio后,根安装普通软件一样,一路Next即可。

1.3 创建你的第一个Android项目

无知识点

1.3.1 创建HelloWorld项目。
  1. 打开Android Studio,进入欢迎界面。

  2. 点击Start a new Android Studio project,进入创建新项目界面

  3. 进入设置项目的最低兼容版本

  4. 进入选择模板

  5. 给活动和布局命名

  6. 点击Finish按钮,进入到项目创建成功界面。

1.3.2 启动模拟器

点击下图中最左边的按钮就可以创建和启动模拟器。

但个人觉得Android Studio原生的模拟器不是很好用,所以我平时选用的是第三方的genymotion模拟器。

genymotion下载网址如下:

https://www.genymotion.com/account/login/

需要先注册。

1.3.3 运行HelloWorld
  • 启动模拟器

  • 点击顶部工具栏中的运行按钮

  • 在Select Deployment Target选中模拟器,点击OK按钮。

1.3.4 分析你的第一个Android程序

将项目结构模式切换成Project

下面介绍整个项目的外层目录结构。

  • .gradle和.idea

    Android Studio自动生成的文件,无需关心

  • app

    项目的代码和资源文件

  • build

    包含编译时自动生成的文件

  • gradle

    包含gradle wrapper的配置文件

  • .gitgnore

    将指定的目录或文件排除在版本控制之外

  • build.gradle

    项目全局的gradle构建脚本,一般都不需要修改

  • gradle.properties

    全局的gradle配置文件,直接影响项目中所有的gradle编译脚本

  • gradlew和gradlew.bat

    用来在命令行中执行gradle命令,其中gradlew是在Linux或Mac系统中使用的,gradlew.bat是在Windows系统中使用。

  • HelloWorld.iml

    iml文件是所有IntelliJ IDEA项目都会自动生成的一个文件,用于标识这是一个IntelliJ IDEA项目,无需修改该文件中的任何内容。

  • local.properties

    用于指定本机中SDK的路径,自动生成,无需修改。

  • settings.gradle

    指定项目中所有引入的模块

展开app目录:

下面详细介绍下app目录下的内容

  • build

    编译时自动生成的文件,无需关心

  • libs

    存放第三方jar包,放在该目录下的jar包会自动添加到构建路径中去。

  • androidTest

    编写Android Test测试用例,对项目进行一些自动化测试。

  • Java

    存放所有Java代码

  • res

    存放项目中所有图片、布局、字符串等资源文件

  • AndroidManifest.xml

    Android项目配置文件

  • test

    编写Unit Test 测试用例,是对项目进行自动化测试的另一种方式

  • .gitgnore

    将app模块内指定的目录排除在版本控制之外

  • app.iml

    IntelliJ IDEA项目自动生成的文件

  • build.gradle

    app模块的gradle构建脚本

  • proguard-rules.pro

    指定项目代码的混淆规则

1.3.5 详解项目中的资源文件

无知识点

1.3.6 详解build.gradle文件

最外层目录下的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 26buildToolsVersion "27.0.0"defaultConfig {applicationId "com.example.helloworld"minSdkVersion 15targetSdkVersion 26versionCode 1versionName "1.0"testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"}buildTypes {release {minifyEnabled falseproguardFiles 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
  • Log.v():打印最为琐碎的、意义最小的日志信息。(verbose)

  • Log.d():打印调试信息。(debug)

  • Log.i():打印重要的日志信息。(info)

  • Log.w():打印一些警告信息。(warn)

  • Log.e():打印程序中的错误信息。(error)

日志等级由低到高:v -> d -> i -> w -> e

运行程序的快捷键

Windows : Shift + F10

Mac : control + R

1.4.2 为什么使用Log而不使用System.out
  • logcat中能添加过滤器

  • 可以控制日志级别

1.5 小结与点评

无知识点

第一行代码第一章——你的第一行Android代码相关推荐

  1. R7-如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。比如,”heart”与”earth”互为变位 词,”Mary”与”arMy”也互为变位词。输入格式:第一行输入第一个字符

    如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词.比如,"heart"与"earth"互为变位 词,"Mary"与& ...

  2. 第001天:第一行Android代码

    1.1    了解全貌--Android王国简介 Android从面世以来到现在已经发布了二十几个版本了.在这几年的发展过程中,谷歌为 Android王国建立了一个完整的生态系统.手机厂商.开发者.用 ...

  3. [Android]安装 Android Studio 第一行Android代码

    安装 Android Studio 1.下载 官网 建议官网下载https://developer.android.com/index.html 网盘 链接:https://pan.baidu.com ...

  4. 《第一行代码》 第一章:第一行Android代码

    1,Android系统架构 2,开发的四大组件 3,丰富的系统控件 Android 系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面.当然如果你品位比较高,不满足于系统自带的控件 ...

  5. 《第一行代码》学习笔记——第1章 开始启程,你的第一行Android代码

    1.3 创建你的第一个Android项目 1.3.1 创建HelloWorld项目 1.Application Name代表应用名称,手机上显示的就是它: 2.Project Name代表项目名称,其 ...

  6. linux 到文件的最后一行,linux – 将第一行复制到文件中的最后一行

    这里的目的是将文件中的第一行复制到最后一行 这里是输入文件 335418.75,2392631.25,36091,38466,1 335418.75,2392643.75,36092,38466,1 ...

  7. python用一行代码编写一个回声程序_一行python代码实现树结构

    树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...

  8. python画图代码-Python为啥这么牛?一行Python代码除了画图竟然还有这些功能!

    在开始这个话题之前,我想问大家:什么是 Python?根据 Python 之父 Guido van Rossum 的话,Python是:一种高级程序语言,其核心设计哲学是代码可读性和语法,能够让程序员 ...

  9. 一行python代码能实现的功能_一行 Python 代码能实现这么多丧心病狂的功能?

    导读:最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>的帖子,点进去发现一行Python代码可以做这么多丧心病狂的功能! 整理了一下知乎上这篇文章的内容,颇觉有趣, ...

最新文章

  1. jquery 取消 radio checked 属性,重新选中的问题解决
  2. Windows Server 2016 DNS Policy Geo-Location 1
  3. 只能输入正整数 以及常用的正则表达式
  4. git学习(8):windows系统下VI编辑器的基本使用
  5. 一次性获取多个oracle序列的值,实现关联表多数据的批量insert
  6. java mysql 数据类型对照
  7. Java逆序列化报错serialVersionUID不同
  8. ibatis基础(五):删除指定id的单个对象
  9. three.js入门——写个小车
  10. H264___DCT蝶形算法____理解
  11. 读者提问:如何提高效率?
  12. Autolisp:利用AuoCAD之Lisp编程案例之智能加工齿轮的演示程序
  13. 计算机电缆一般用在哪里,计算机电缆的型号有哪些,它们的用途是什么
  14. 移动硬盘提示格式化怎么办怎么恢复数据?
  15. 2021-08-06
  16. 大数据MBA 通过大数据实现与分析驱动企业决策与转型
  17. 路遥《人生》中经典语录
  18. OkHttpClient简单封装
  19. 点滴时间读完《十亿消费者》
  20. Centos7+MySQL8(基于tar.gz压缩文件安装)

热门文章

  1. 最高一万星!GitHub 标星最多的 40 篇 ICLR2020 计算机视觉论文合集,附打包下载
  2. 华人包揽CVPR 2019最佳论文,李飞飞ImageNet成就经典
  3. BBR在实时音视频领域的应用
  4. 网易超分黑科技来了!全新移动端视频体验时代来临
  5. 2019,从刷新你的运营知识库开始!
  6. 一切为了运营!如何从推广短信链接唤起 App?
  7. 连麦互动直播 将成直播体验深度优化的必然形式
  8. 100%你没见过的魔兽表情包,拿去!再扯情怀已俗!
  9. 聊聊flink的FencedAkkaInvocationHandler
  10. Java打印整数的二进制表示(代码与解析)