一个Android项目包含了所有构成Android应用的源代码文件。

本小节介绍如何使用Android Studio或者是SDK Tools中的命令行来创建一个新的项目。

Note:在此之前,我们应该已经安装了Android SDK,如果使用Android Studio开发,应该确保已经安装了Android Studio。否则,请先阅读 Installing the Android SDK按照向导完成安装步骤。

使用Android Studio创建项目

1. 使用Android Studio创建Android项目,启动Android Studio。

  • 如果我们还没有用Android Studio打开过项目,会看到欢迎页,点击New Project。
  • 如果已经用Android Studio打开过项目,点击菜单中的File,选择New Project来创建一个新的项目。

2. 参照图1在弹出的窗口(Configure your new project)中填入内容,点击Next。按照如图所示的值进行填写会使得后续的操作步骤不不容易差错。

  • Application Name此处填写想呈现给用户的应用名称,此处我们使用“My First App”。
  • Company domain 包名限定符,Android Studio会将这个限定符应用于每个新建的Android项目。
  • Package Name是应用的包命名空间(同Java的包的概念),该包名在同一Android系统上所有已安装的应用中具有唯一性,我们可以独立地编辑该包名。
  • Project location操作系统存放项目的目录。

 图1Configure your new project

3. 在Select the form factors your app will run on窗口勾选Phone and Tablet

4. Minimum SDK, 选择 API 8: Android 2.2 (Froyo). Minimum Required SDK表示我们的应用支持的最低Android版本,为了支持尽可能多的设备,我们应该设置为能支持你应用核心功能的最低API版本。如果某些非核心功能仅在较高版本的API支持,你可以只在支持这些功能的版本上开启它们(参考兼容不同的系统版本),此处采用默认值即可。

5. 不要勾选其他选项 (TV, Wear, and Glass) ,点击 Next.

6. 在Add an activity to 窗口选择Basic Activity,点击 Next.

7. 在Choose options for your new file 窗口修改Activity Name 为MyActivity,修改 Layout Name 为activity_myTitle 修改为MyActivityMenu Resource Name 修改为menu_my

8. 点击Finish完成创建。

刚创建的Android项目是一个基础的Hello World项目,包含一些默认文件,我们花一点时间看看最重要的部分:

app/src/main/res/layout/activity_my.xml

这是刚才用Android Studio创建项目时新建的Activity对应的xml布局文件,按照创建新项目的流程,Android Studio会同时展示这个文件的文本视图和图形化预览视图,该文件包含一些默认设置和一个显示内容为“Hello world!”的TextView元素。

app/src/main/java/com.mycompany.myfirstapp/MyActivity.java

用Android Studio创建新项目完成后,可在Android Studio看到该文件对应的选项卡,选中该选项卡,可以看到刚创建的Activity类的定义。编译并运行该项目后,Activity启动并加载布局文件activity_my.xml,显示一条文本:"Hello world!"

app/src/main/AndroidManifest.xml

manifest文件描述了项目的基本特征并列出了组成应用的各个组件,接下来的学习会更深入了解这个文件并添加更多组件到该文件中。

app/build.gradle

Android Studio使用Gradle 编译运行Android工程. 工程的每个模块以及整个工程都有一个build.gradle文件。通常你只需要关注模块的build.gradle文件,该文件存放编译依赖设置,包括defaultConfig设置:

  • compiledSdkVersion 是我们的应用将要编译的目标Android版本,此处默认为你的SDK已安装的最新Android版本(目前应该是4.1或更高版本,如果你没有安装一个可用Android版本,就要先用SDK Manager来完成安装),我们仍然可以使用较老的版本编译项目,但把该值设为最新版本,可以使用Android的最新特性,同时可以在最新的设备上优化应用来提高用户体验。
  • applicationId 创建新项目时指定的包名。
  • minSdkVersion 创建项目时指定的最低SDK版本,是新建应用支持的最低SDK版本。
  • targetSdkVersion 表示你测试过你的应用支持的最高Android版本(同样用API level表示).当Android发布最新版本后,我们应该在最新版本的Android测试自己的应用同时更新target sdk到Android最新版本,以便充分利用Android新版本的特性。更多知识,请阅读Supporting Different Platform Versions

更多关于Gradle的知识请阅读Building Your Project with Gradle

注意/res目录下也包含了resources资源:

drawable<density>/

存放各种densities图像的文件夹,mdpi,hdpi等,这里能够找到应用运行时的图标文件ic_launcher.png

layout/

存放用户界面文件,如前边提到的activity_my.xml,描述了MyActivity对应的用户界面。

menu/

存放应用里定义菜单项的文件。

values/

存放其他xml资源文件,如string,color定义。string.xml定义了运行应用时显示的文本"Hello world!"

要运行这个APP,继续下个小节的学习。

使用命令行创建项目

如果没有使用Android Studio开发Android项目,我们可以在命令行使用SDK提供的tools来创建一个Android项目。

1. 打开命令行切换到SDK根目录下;

2. 执行:

tools/android list targets

会在屏幕上打印出我们所有的Android SDK中下载好的可用Android platforms,找想要创建项目的目标platform,记录该platform对应的Id,推荐使用最新的platform。我们仍可以使自己的应用支持较老版本的platform,但设置为最新版本允许我们为最新的Android设备优化我们的应用。 如果没有看到任何可用的platform,我们需要使用Android SDK Manager完成下载安装,参见 Adding Platforms and Packages

3. 执行:

android create project --target <target-id> --name MyFirstApp \
--path <path-to-workspace>/MyFirstApp --activity MyActivity \
--package com.example.myfirstapp

替换<target-id>为上一步记录好的Id,替换<path-to-workspace>为我们想要保存项目的路径。

Tip:把platform-tools/和 tools/添加到环境变量PATH,开发更方便。

到此为止,我们的Android项目已经是一个基本的“Hello World”程序,包含了一些默认的文件。要运行它,继续下个小节的学习。

1) 十分钟学会android--建立第一个APP,创建android项目的更多相关文章

  1. 2) 十分钟学会android--建立第一个APP,执行Android程序

    通过上一节课创建了一个Android的Hello World项目,项目默认包含一系列源文件,它让我们可以立即运行应用程序. 如何运行Android应用取决于两件事情:是否有一个Android设备和是否 ...

  2. 3) 十分钟学会android--建立第一个APP,建立简单的用户界面

    在本小节里,我们将学习如何用 XML 创建一个带有文本输入框和按钮的界面.下一节课将学会使 APP 对按钮做出响应——按钮被按下时,文本框里的内容被发送到另外一个 Activity. Android ...

  3. 4) 十分钟学会android--建立第一个APP,启动另一个Activity

    在完成上一课(建立简单的用户界面)后,我们已经拥有了显示一个activity(一个界面)的app(应用),该activity包含了一个文本字段和一个按钮.在这节课中,我们将添加一些新的代码到MyAct ...

  4. PHP学习过程_Symfony_(3)_整理_十分钟学会Symfony

    这篇文章主要介绍了Symfony学习十分钟入门教程,详细介绍了Symfony的安装配置,项目初始化,建立Bundle,设计实体,添加约束,增删改查等基本操作技巧,需要的朋友可以参考下 (此文章已被多人 ...

  5. Android项目实战(二十二):启动另一个APP or 重启本APP

    一.启动另一个APP 目前公司项目需求,一个主APP,需要打开某些小APP,这些小APP是整合了Unity的,但是还是android程序(所有小APP的包名是已知的). 以前没做过,查询了一下实现方法 ...

  6. android studio 导入一个已有的android studio project作为lib使用

    android studio 导入一个已有的android studio project作为lib使用 新项目来了. 需要搭建框架. android studio对我来说还是很陌生,之前一个项目在同事 ...

  7. Android入门(一) IDEA上创建Android应用之helloworld

    Android入门(一) IDEA上创建Android应用之helloworld 首先看运行结果: 一.准备工作 下载安装IntelliJ IDEA :我这里用的是2018.2.7 下载安装Genym ...

  8. 9) 十分钟学会android--使用Fragment建立动态UI

    为了在 Android 上为用户提供动态的.多窗口的交互体验,需要将 UI 组件和 Activity 操作封装成模块进行使用,这样我们就可以在 Activity 中对这些模块进行切入切出操作.可以用  ...

  9. 十分钟学会 tmux

    tmux 是一款终端复用命令行工具,一般用于 Terminal 的窗口管理.在 macOS 下,使用 iTerm2 能应付绝大多数窗口管理的需求. 如上图所示,iTerm2 能新建多个标签页(快捷键 ...

随机推荐

  1. 【转】VMWare vCenter 6.0安装配置

    版权声明: 专注于"GIS+"前沿技术的研究与交流,将云计算技术.大数据技术.容器技术.物联网与GIS进行深度融合,探讨"GIS+"技术和行业解决方案:文章允许 ...

  2. Android内存优化————加载长图

    项目中总会遇到加载长图的需求,图片的长度可能是手机长度的很多倍,也就是需要通过滑动来查看图片.比较简单的实现方式就是使用ScrollView来加载长图,但是这样做有一个很严重的问题,就是内存消耗严重. ...

  3. 【转载】java list的一些基本操作

    1.list中添加,获取,删除元素 List<String> person=new ArrayList<>(); person.add("jackie"); ...

  4. vue scss 安装

    1.开始在vue项目中使用sass,在命令行输入一下命令进行安装(使用git命令行要用shift+insert 进行粘贴否则粘贴不上) cnpm install node-sass --save-de ...

  5. Java 8 集合不完全一览

    JDK 8 List 名称 线程安全 数据结构 允许 null 默认初始容量 扩容策略 备注 ArrayList 不安全 数组 允许 10 1.5 * old LinkedList 不安全 双链表 允 ...

  6. 类型转换、分支(day05)

    如果表达式里包含多个不同类型的数字就必须 首先把它们转换成同一个类型然后才能 计算 这个转换过程叫做隐式类型转换,完全由 计算机完成 隐式类型转换过程中一定把占地小的类型转换 成占地大的类型 如果不同 ...

  7. [luogu2165 AHOI2009] 飞行棋 (枚举)

    传送门 Description 给出圆周上的若干个点,已知点与点之间的弧长,其值均为正整数,并依圆周顺序排列. 请找出这些点中有没有可以围成矩形的,并希望在最短时间内找出所有不重复矩形. Input ...

  8. Linux系统学习之 三:新手必须掌握的Linux命令3

    内容预览 1.输入输出重定向 2.管道命令符 3.命令行的通配符 4.常用的转义符号 5.重要的环境变量 一.输入输出重定向 重定向技术的5种模式:1 标准覆盖输出重定向 错误覆盖输出重定向 错误追加 ...

  9. Redis启动出错 noauth authentication required.

    输入认证过的密码即可. 在命令行中运行: auth password

  10. javascript--闭包与this

    理解javascript中的闭包与this http://www.ruanyifeng.com/blog/2009/08/learning_javascript_closures.html http: ...