第一行代码第一章——你的第一行Android代码
第一行代码第一章—你的第一行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项目。
打开Android Studio,进入欢迎界面。
点击Start a new Android Studio project,进入创建新项目界面
进入设置项目的最低兼容版本
进入选择模板
给活动和布局命名
点击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代码相关推荐
- R7-如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词。比如,”heart”与”earth”互为变位 词,”Mary”与”arMy”也互为变位词。输入格式:第一行输入第一个字符
如果一个字符串是 另一个字符串的重新排列组合,那么这两个字符串互为变位词.比如,"heart"与"earth"互为变位 词,"Mary"与& ...
- 第001天:第一行Android代码
1.1 了解全貌--Android王国简介 Android从面世以来到现在已经发布了二十几个版本了.在这几年的发展过程中,谷歌为 Android王国建立了一个完整的生态系统.手机厂商.开发者.用 ...
- [Android]安装 Android Studio 第一行Android代码
安装 Android Studio 1.下载 官网 建议官网下载https://developer.android.com/index.html 网盘 链接:https://pan.baidu.com ...
- 《第一行代码》 第一章:第一行Android代码
1,Android系统架构 2,开发的四大组件 3,丰富的系统控件 Android 系统为开发者提供了丰富的系统控件,使得我们可以很轻松地编写出漂亮的界面.当然如果你品位比较高,不满足于系统自带的控件 ...
- 《第一行代码》学习笔记——第1章 开始启程,你的第一行Android代码
1.3 创建你的第一个Android项目 1.3.1 创建HelloWorld项目 1.Application Name代表应用名称,手机上显示的就是它: 2.Project Name代表项目名称,其 ...
- linux 到文件的最后一行,linux – 将第一行复制到文件中的最后一行
这里的目的是将文件中的第一行复制到最后一行 这里是输入文件 335418.75,2392631.25,36091,38466,1 335418.75,2392643.75,36092,38466,1 ...
- python用一行代码编写一个回声程序_一行python代码实现树结构
树结构是一种抽象数据类型,在计算机科学领域有着非常广泛的应用.一颗树可以简单的表示为根, 左子树, 右子树. 而左子树和右子树又可以有自己的子树.这似乎是一种比较复杂的数据结构,那么真的能像我们在标题 ...
- python画图代码-Python为啥这么牛?一行Python代码除了画图竟然还有这些功能!
在开始这个话题之前,我想问大家:什么是 Python?根据 Python 之父 Guido van Rossum 的话,Python是:一种高级程序语言,其核心设计哲学是代码可读性和语法,能够让程序员 ...
- 一行python代码能实现的功能_一行 Python 代码能实现这么多丧心病狂的功能?
导读:最近看知乎上有一篇名为<一行 Python 能实现什么丧心病狂的功能?>的帖子,点进去发现一行Python代码可以做这么多丧心病狂的功能! 整理了一下知乎上这篇文章的内容,颇觉有趣, ...
最新文章
- jquery 取消 radio checked 属性,重新选中的问题解决
- Windows Server 2016 DNS Policy Geo-Location 1
- 只能输入正整数 以及常用的正则表达式
- git学习(8):windows系统下VI编辑器的基本使用
- 一次性获取多个oracle序列的值,实现关联表多数据的批量insert
- java mysql 数据类型对照
- Java逆序列化报错serialVersionUID不同
- ibatis基础(五):删除指定id的单个对象
- three.js入门——写个小车
- H264___DCT蝶形算法____理解
- 读者提问:如何提高效率?
- Autolisp:利用AuoCAD之Lisp编程案例之智能加工齿轮的演示程序
- 计算机电缆一般用在哪里,计算机电缆的型号有哪些,它们的用途是什么
- 移动硬盘提示格式化怎么办怎么恢复数据?
- 2021-08-06
- 大数据MBA 通过大数据实现与分析驱动企业决策与转型
- 路遥《人生》中经典语录
- OkHttpClient简单封装
- 点滴时间读完《十亿消费者》
- Centos7+MySQL8(基于tar.gz压缩文件安装)