跟着Google学Android —— 1.2 第一次当然是献给Hello World
2016-03-21 15:19
176 查看
好久好久之前听到的一个笑话,应该是在学校里,说程序员去学习书法,第一节课,提起毛笔练习,写下的第一个字就是:Hello World
个人认为Hello World其实就是最简单、最直观的一个示例程序,可以让我直观地了解我们的开发环境以及运行环境这一系列系统是怎么走过来的。
2. “Configure your new project” —— 弹出的对话框中填写应用程序(Application)的相关信息:
1) Application Name:应用名称,就是安装好后应用图标下面显示的那几个字,例如“Facebook”、“大众点评”等;
2) Company Domain:公司域名,例如tencent.com,我们如果个人开发的话写自己的名字也可以,比如wenhe.com,这个域名将被用来生成下面的Package Name;
3) Package Name:这是整个项目的完整的包名,遵从的是Java中的命名规则,具体可以参考Bruce Eckel的Thinking in Java第四版,简单说就是把公司域名倒过来,然后加上应用名,例如应用名是We Chat,公司域名是tencent.com,那么包名就是com.tencent.wechat(全小写,无空格);
4) Project Location:项目文件的存储路径,用英文,别打空格。
3. “Select the form factors your app will run on” —— 选择你的app将要运行的平台(可多选):
1) Phone and Tablet:手机及平板,在第一个应用中,我们仅勾选这一个选项;
2) Wear:穿戴设备;
3) TV:电视;
4) Android Auto:汽车;
5) Glass:谷歌眼镜。
4. Minimum SDK:
Minimum SDK是你的app支持的最老的(API level最低的)SDK版本,比如说这里选择API 11: Android 3.0 (Honeycomb),意思就是说运行环境从Android 3.0开始的安卓设备都能够运行你的app。
这里的值选的越低,app能兼容的设备也就越多,但是相应的可用的feature也就越少,如果我们app的核心feature是一个较高版本,那么我们就不能把Minimum SDK设置的那么低,不然即使用户下载了,也没办法正常使用;
如果多数feature低版本都有,且高版本的feature并不是核心feature,那么可以设置低版本的SDK,然后设置仅在运行设备是高版本的时候才开启某些feature;
AS在建项目的时候提示:API level 11及以后可以支持94%以上Google Play Store的设备,这个量,够了。
5. “Adding an activity to XXX” —— 给XXX添加一个activity:
一个Activity就是用户看到的一个UI(User Interface)用户界面;
这里的XXX实际上是平台,我们前面选择的是“Phone and Tablet”,所以这里的XXX显示的是Mobile;如果前面选择的是“Wear”,那这里出现的就是穿戴设备的UI模板;
对于Hello World这个项目,选择“Empty Activity”就好啦,最简单的用户界面;谷歌training里面用的是Blank Activity,比Empty Activity界面上多了bar、menu和Floating Action Button
6. “Customize the Activity” —— 客制化这个界面:
1) Activity Name:Activity的名字,例如MainActivity;
2) Layout Name:布局文件的名字,例如activity_main。
7. 点击“Finish”,之后唰--唰--唰--,项目就建好了。
需要注意的点:
1) 创建项目的时候如果在Application Name写中文,系统会默认将项目保存路径也写中文,这样就会报“Non-ASCII characters”的字样,修正方法是将存储路径改成无空格的英文名字;
2) 我们也可以在建立项目的时候单独修改包名,让它和公司域名或应用名不同,但需要注意的是,这个包名在整个Android系统中一定要是独一无二的,不然就跪了。
接下来看下项目中主要的文件:
1) ...\app\src\main\res\layout\activity_main.xml
这是MainActivity对应的布局文件,在Android Studio中可以切换它的两种显示方式:Text和Design,Text显示就是xml文本标签的方式,Design就是AS会渲染出一个图形界面;我们如果要添加按钮啊、输入框啊、图片啊之类的布局都是在这个文件里进行添加的。
2) ...\app\src\main\java\com\wenhe\myfirstapp\MainActivity.java
这个文件是对你创建的activity的类(Class)的定义,在布局文件里定义的各种组件,都会在这个文件中进行使用;简单说,这个类定义了UI上面各个组件的功能,或者说是行为。
3) ...\app\src\main\AndroidManifest.xml
清单文件。这个文件描述了app基本的特征以、所有的activity、intent、以及app所需要的权限等。
4) ...\app\build.gradle
AS使用gradle来编译app,这个文件中有很多依赖性的设定,例如:
a) compileSdkVersion:你要编译app的SDK的版本,默认是我们下载的SDK中的最新版本,数值越大,feature越新;可以查看...\Android\sdk\platforms\这个路径来看可以填写的版本,例如23;
b) buildToolsVersion:查看...\Android\sdk\build-tools\这个路径可以找到我们能填写的版本,例如23.0.2;
c) applicationId:app的包的全名;
d) minSdkVersion:建项目时候选择的,app支持的最早的SDK版本;
e) targetSdkVersion:测试过的,可用的最高的SDK版本,和compileSdkVersion的值其实是一样的。
5) ...\app\src\main\res\
这个路径下是各种资源文件,分类放在不同的文件夹下:
a) drawable-XXX\:存放除app图标以外的其他图片资源,这里的XXX是不同的分辨率,不同分辨率文件夹下面的各图片资源文件名字是相同的,只是图片的质量不同;
b) mipmap-XXX\:存放app的图标文件,这里的XXX也是指不同的分辨率,例如hdpi、mdpi、xhdpi等;
c) layout\:用户界面的布局文件,例如前面建立项目时候的那个activity_main.xml;
d) values\:存放例如定义字符串、颜色等的xml文件。
1) AVD仿真运行APP
首先是建立一台安卓虚拟设备:
1. 在Android中选择AVD(Anrdoid Virtual Device)
这个图标;
2. 选择“Create Virtual Device”,弹出的窗口中category选择Phone,里面有很多亲儿子可选(Nexus 4/5/6等);
3. 选好硬件之后,接下来选择系统软件,这里的可选项和你AS中的SDK版本一样的;
4. 最后就是“确认配置”的页面,可以修改这台AVD的名字、型号、系统、初始放置方向等等,确认无误选择“Finish”,这台虚拟设备就建好了;
然后就可以在这台虚拟设备上运行我们的app了:
1. 在工具栏中选择
运行app;
2. 勾选“Launch emulator”,然后选择要在哪台AVD上运行程序,选好后点“OK”;
3. 然后就可以看到我们的app已经装在虚拟设备上啦,不过电脑配置低的话虚拟设备开机就要开好久...
2) 真机运行APP
1. 手机通过USB线与电脑相连,确认USB调试是已经打开了的;
2. 在工具栏中选择
运行app;
3. 勾选“Choose a running device” 中连着电脑的那台手机,点击OK,即可将app装到真机中运行。
1. cmd.exe中cd到我们app的根文件夹下;
2. 输入gradlew.bat assembleDebug,敲回车,编译成功的话最后会提示“Build Successful”;
3. 之后手机通过USB线连接PC,确认USB调试以及安全中的“允许从未知源”安装已勾选;
4. 在cmd.exe中输入adb install -r X:\XXX\...\YYY\app\build\outputs\apk\app-debug.apk即可将app安装到我们的手机上,之后便可以开始调试啦~~
个人认为Hello World其实就是最简单、最直观的一个示例程序,可以让我直观地了解我们的开发环境以及运行环境这一系列系统是怎么走过来的。
一. Android Studio中建立Hello World项目
1. 在AS中点击File -> New -> New Project;2. “Configure your new project” —— 弹出的对话框中填写应用程序(Application)的相关信息:
1) Application Name:应用名称,就是安装好后应用图标下面显示的那几个字,例如“Facebook”、“大众点评”等;
2) Company Domain:公司域名,例如tencent.com,我们如果个人开发的话写自己的名字也可以,比如wenhe.com,这个域名将被用来生成下面的Package Name;
3) Package Name:这是整个项目的完整的包名,遵从的是Java中的命名规则,具体可以参考Bruce Eckel的Thinking in Java第四版,简单说就是把公司域名倒过来,然后加上应用名,例如应用名是We Chat,公司域名是tencent.com,那么包名就是com.tencent.wechat(全小写,无空格);
4) Project Location:项目文件的存储路径,用英文,别打空格。
3. “Select the form factors your app will run on” —— 选择你的app将要运行的平台(可多选):
1) Phone and Tablet:手机及平板,在第一个应用中,我们仅勾选这一个选项;
2) Wear:穿戴设备;
3) TV:电视;
4) Android Auto:汽车;
5) Glass:谷歌眼镜。
4. Minimum SDK:
Minimum SDK是你的app支持的最老的(API level最低的)SDK版本,比如说这里选择API 11: Android 3.0 (Honeycomb),意思就是说运行环境从Android 3.0开始的安卓设备都能够运行你的app。
这里的值选的越低,app能兼容的设备也就越多,但是相应的可用的feature也就越少,如果我们app的核心feature是一个较高版本,那么我们就不能把Minimum SDK设置的那么低,不然即使用户下载了,也没办法正常使用;
如果多数feature低版本都有,且高版本的feature并不是核心feature,那么可以设置低版本的SDK,然后设置仅在运行设备是高版本的时候才开启某些feature;
AS在建项目的时候提示:API level 11及以后可以支持94%以上Google Play Store的设备,这个量,够了。
5. “Adding an activity to XXX” —— 给XXX添加一个activity:
一个Activity就是用户看到的一个UI(User Interface)用户界面;
这里的XXX实际上是平台,我们前面选择的是“Phone and Tablet”,所以这里的XXX显示的是Mobile;如果前面选择的是“Wear”,那这里出现的就是穿戴设备的UI模板;
对于Hello World这个项目,选择“Empty Activity”就好啦,最简单的用户界面;谷歌training里面用的是Blank Activity,比Empty Activity界面上多了bar、menu和Floating Action Button
6. “Customize the Activity” —— 客制化这个界面:
1) Activity Name:Activity的名字,例如MainActivity;
2) Layout Name:布局文件的名字,例如activity_main。
7. 点击“Finish”,之后唰--唰--唰--,项目就建好了。
需要注意的点:
1) 创建项目的时候如果在Application Name写中文,系统会默认将项目保存路径也写中文,这样就会报“Non-ASCII characters”的字样,修正方法是将存储路径改成无空格的英文名字;
2) 我们也可以在建立项目的时候单独修改包名,让它和公司域名或应用名不同,但需要注意的是,这个包名在整个Android系统中一定要是独一无二的,不然就跪了。
接下来看下项目中主要的文件:
1) ...\app\src\main\res\layout\activity_main.xml
这是MainActivity对应的布局文件,在Android Studio中可以切换它的两种显示方式:Text和Design,Text显示就是xml文本标签的方式,Design就是AS会渲染出一个图形界面;我们如果要添加按钮啊、输入框啊、图片啊之类的布局都是在这个文件里进行添加的。
2) ...\app\src\main\java\com\wenhe\myfirstapp\MainActivity.java
这个文件是对你创建的activity的类(Class)的定义,在布局文件里定义的各种组件,都会在这个文件中进行使用;简单说,这个类定义了UI上面各个组件的功能,或者说是行为。
3) ...\app\src\main\AndroidManifest.xml
清单文件。这个文件描述了app基本的特征以、所有的activity、intent、以及app所需要的权限等。
4) ...\app\build.gradle
AS使用gradle来编译app,这个文件中有很多依赖性的设定,例如:
a) compileSdkVersion:你要编译app的SDK的版本,默认是我们下载的SDK中的最新版本,数值越大,feature越新;可以查看...\Android\sdk\platforms\这个路径来看可以填写的版本,例如23;
b) buildToolsVersion:查看...\Android\sdk\build-tools\这个路径可以找到我们能填写的版本,例如23.0.2;
c) applicationId:app的包的全名;
d) minSdkVersion:建项目时候选择的,app支持的最早的SDK版本;
e) targetSdkVersion:测试过的,可用的最高的SDK版本,和compileSdkVersion的值其实是一样的。
5) ...\app\src\main\res\
这个路径下是各种资源文件,分类放在不同的文件夹下:
a) drawable-XXX\:存放除app图标以外的其他图片资源,这里的XXX是不同的分辨率,不同分辨率文件夹下面的各图片资源文件名字是相同的,只是图片的质量不同;
b) mipmap-XXX\:存放app的图标文件,这里的XXX也是指不同的分辨率,例如hdpi、mdpi、xhdpi等;
c) layout\:用户界面的布局文件,例如前面建立项目时候的那个activity_main.xml;
d) values\:存放例如定义字符串、颜色等的xml文件。
二. AVD上模拟运行Hello World app
hello world工程建好之后,什么都不用修改,我们应该就可以通过编译生成apk文件,而调试运行这个app的方式有两种:1. Android Studio内的仿真设备;2. 自己手上的安卓机真机调试。1) AVD仿真运行APP
首先是建立一台安卓虚拟设备:
1. 在Android中选择AVD(Anrdoid Virtual Device)
这个图标;
2. 选择“Create Virtual Device”,弹出的窗口中category选择Phone,里面有很多亲儿子可选(Nexus 4/5/6等);
3. 选好硬件之后,接下来选择系统软件,这里的可选项和你AS中的SDK版本一样的;
4. 最后就是“确认配置”的页面,可以修改这台AVD的名字、型号、系统、初始放置方向等等,确认无误选择“Finish”,这台虚拟设备就建好了;
然后就可以在这台虚拟设备上运行我们的app了:
1. 在工具栏中选择
运行app;
2. 勾选“Launch emulator”,然后选择要在哪台AVD上运行程序,选好后点“OK”;
3. 然后就可以看到我们的app已经装在虚拟设备上啦,不过电脑配置低的话虚拟设备开机就要开好久...
2) 真机运行APP
1. 手机通过USB线与电脑相连,确认USB调试是已经打开了的;
2. 在工具栏中选择
运行app;
3. 勾选“Choose a running device” 中连着电脑的那台手机,点击OK,即可将app装到真机中运行。
三. 酷酷的命令行
除了通过上面的UI进行操作,我们还可以使用命令行编译app并安装到真机上进行调试:1. cmd.exe中cd到我们app的根文件夹下;
2. 输入gradlew.bat assembleDebug,敲回车,编译成功的话最后会提示“Build Successful”;
3. 之后手机通过USB线连接PC,确认USB调试以及安全中的“允许从未知源”安装已勾选;
4. 在cmd.exe中输入adb install -r X:\XXX\...\YYY\app\build\outputs\apk\app-debug.apk即可将app安装到我们的手机上,之后便可以开始调试啦~~
相关文章推荐
- Android中ListView点击事件失效的解决办法
- Android动画分类和详解
- Google cardBoard Android API (十):HeadMountedDisplay
- Android学习之解决ScrollView嵌套ListView显示的错误
- Android实现简单的分批加载ListView
- 掌握AndroidAnnotations进行快速Android开发
- Google cardBoard Android API (九):FieldOfView
- 中午乱码问题
- 在android的同一个wifi局域网下,利用socket与多个手机进行数据的收发
- 调用android系统相机拍照并保存
- Android如何高性能编程
- Google cardBoard Android API (八):Eye.Type
- Android开发学习笔记秘籍(十六)
- 你想不想同时使用多个版本的Android studio
- 加载大图避免出现OOM
- Android APK反编译就这么简单 详解(附图)
- android编译hmm命令的输出
- 自定义滑动按钮为例图文剖析Android自定义View绘制
- Google cardBoard Android API (七):Eye
- Android官方开发文档Training系列课程中文版:构建第一款安卓应用之程序运行