当前位置: 首页 > 编程日记 > 正文

Android Studio创建项目

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010046908/article/details/47000873

创建项目

首先,先指出Android Studio中的两个概念。 Project 和 Module 。在Android Studio中, Project 的真实含义是工作空间, Module 为一个具体的项目。

在 Eclipse 中,我们可以同时对多个 Eclipse 的 Project 进行同时编辑,这些 Project 在同一个 workspace 之中。在Android Studio中,我们可以同时对多个Android Studio的 Module 进行同时编辑,这些 Module 在同一个Project 之中。

Eclipse 的 Project 等同于Android Studio的 Module 。
Eclipse 的 workspace 等同于Android Studio的 Project 。

本文中所说到的项目指的是Android Studio的 Module 。Android Studio创建一个项目,首先要先创建 Project 。但是你创建项目的同时, Project 自动创建了,因此很多人容易混淆这两种概念。

讲解1

Android Studio创建项目的过程,其实就是 Eclipse 创建项目过程的细分化。 Eclipse 许多在一个页面设置的内容,Android Studio拆分成了多个页面,因此,创建项目的过程其实并不复杂。

Android Studio有两种创建项目的方法。
第一个是在Android Studio起始页选择 Start a new Android Studio project 。


第二个是在Android Studio主页,选择 File --> New Project 。


讲解2

接下来,我们会看到这个页面。

  • Application name :应用程序的名称。它是app在设备上显示的应用程序名称,也是在Android StudioProject 的名称。
  • Company Domain :公司域名。影响下面的 Package name 。默认为电脑主机名称,当然你也可以单独设置 Package name 。
  • Package name :应用程序包名。每一个app都有一个独立的包名,如果两个app的包名相同,Android会认为他们是同一个app。因此,需要尽量保证,不同的app拥有不同的包名。
  • Project localtion : Project 存放的本地目录。

以上内容设置完毕,点击 Next 。

讲解3

接下来,我们会看到这个页面。


在这里,你可以你的 Project 中 Module 的类型以及支持的最低版本。
  • Phone and Tablet :表示 Module 是一个手机和平板项目。
  • TV :表示 Module 是一个Android TV项目。
  • Wear :表示 Module 是一个可穿戴设备(例如手表)项目。
  • Glass :表示 Module 是一个 Google Glass 项目(不知道 Google Glass 是什么请自行搜索)。

你可以同时选择多个类型,区别就是项目会根据你选择的类型创建一个或多个 Module 。

Minimum SDK 表示的是 Module 支持的Android最低版本。根据不同的用户可以选择不同的版本。你可以点击Help me choose 来查看当前Android版本分布情况。现在这个时代,如果你的项目支持到 2.2 版本几乎是支持了所有的Android设备。

以上内容设置完毕,点击 Next 。

讲解4

接下来,我们会看到这个页面(由于我的 Module 类型只选择了 Phone and Tablet ,所以会有这个页面。)。


这个页面是让我们选择是否创建 Activity以及创建 Activity 的类型。你可以选择不创建 Activity ( Add No Activity )。

如果你选择自动创建 Activity,Android Studio会自动帮你生成一些代码。根据 Activity 类型的不同,生成的代码也是不同的。有时,你能从这些自动生成的代码中,学到很多东西,比如 Fullscreen Activity 。
选择完毕,点击 Next 。

讲解5

接下来,我们会看到这个页面(上一步中,我选择了 Blank Activity 。)。

  • Activity Name :自动创建的 Activity 的类名。
  • Layout Name :自动创建的 Activity 的布局文件名称。
  • Title :自动创建的 Activity 的名称。
  • Menu Resource Name :自动创建的 Activity 的 Menu 文件名称。

以上内容设置完毕,点击 Next 。你将会看到这个进度条。这个表示,Android Studio正在创建和编译你的项目。


讲解6

项目创建编译完毕,会进入Android Studio的主页,你将看到下面的界面。


左侧是你的项目文件区域,中部是代码区域,右侧是布局文件的预览区域。

细心的话,你会发现,左侧的项目文件区域显示的文件层级,和 Eclipse 是不相同的,甚至和本地目录的文件层级也是不相同的。
和 Eclipse 不相同是因为Android Studio使用了 Gradle 这个项目构建工具,而 Eclipse 使用 Ant 构建项目,你可以通过 Gradle 设置和 Eclipse 拥有相同的目录结构。
和本地目录的文件层级不同是因为,在Android Studio 0.8版本之后,官方推荐使用 Android 文件目录显示结构,你可以切换。在项目文件区域的左上角,你可以选择你想选择的文件结构显示类型。


虽然官方建议是使用 Android ,但是我个人还是比较喜欢使用 Project 。你可以根据你的个人习惯进行选择。下面是 Android 和Project 这两种显示类型的显示区别。


从这两张图可以看出: Android 区分明显,只显示了和项目有关的文件; Project 根据本地目录结构,显示了文件结构,比较繁杂却更显示出了真实目录结构。

另外,对于项目文件区域,我还有两个设置。在项目文件区域的右上角,有一个齿轮的设置按钮,点击可以更加细节的设置文件显示效果。


默认是没有勾选 Flatten Packages 和 Autoscroll to Source 的,是我自己勾选上的。 Flatten Packages 是设置将包以完整包名的形式显示(个人习惯)。 Autoscroll to Source 是你点击某一个文件,将自动打开,省去了双击操作。

讲解7

如果你已经有一个项目,你想在这个项目中创建一个 Module ,你可以选择 File --> New Module 。 

这样,会在当前的目录下创建一个 Module ,而不是在一个新的窗口中,单独创建 Project 和 Module 。

之后,你就会看到下面的界面。


同样的道理,你可以设置项目类型,但是,由于你现在是创建一个 Module ,所以只能选择一种类型。

下方的4个选项代表着不同的意义:
  • Android Library :创建一个 Android Library 的 Module 。
  • Import Existing Project :导入其他项目为一个 Module ,导入的项目可以是 Eclipse ADT 项目,也可以是 Gradle 项目( Gradle 只是项目构建工具, Eclipse 中也是可以使用的)。
  • Import .JAR or .AAR Package :导入 JAR 或者 AAR 文件为一个 Module 。
  • Java Library :创建一个 Java 的 Module ,主要用于编写 Java 的工具包。

选择完毕,点击 Next 。其余步骤,和上面几乎一样,就不在赘述了。

相关文章:

Weiss的数据结构与算法分析(C++版)源码编译说明

最近尝试编译Weiss的那本数据结构与算法分析(C版)提供的源代码时,遇到一些问题,特记录如下:考虑到该书提供的代码是使用模板技术较多,这在提供简洁代码的同时,也给源码的编译带来了一些问题。因…

latex 中文_【小白向】LaTeX 中文入门

注:本文尚未撰写完毕,先暂存一下~(2020/06/27)参考学习路线[1]如何从零开始,入门 LaTeX? 孟晨 1. 卸载 CTeX 套装,安装 TeX Live原因及教程见:TeX Live 下载及安装说明2. 看完:一份其实很短的 L…

物联网兴起 嵌入式系统安全日益受关注

随着越来越多设备连接到互联网,专家们担心嵌入式系统将给企业带来严重安全风险,而很多企业还没有意识到这种风险或者无法缓解这种风险…… 随着越来越多设备连接到互联网,专家们担心嵌入式系统将给企业带来严重安全风险,而很多企业…

【Golang源码分析】Go Web常用程序包gorilla/mux的使用与源码简析

目录【阅读时间:约10分钟】一.概述二.对比: gorilla/mux与net/http DefaultServeMux三.简单使用四.源码简析1.NewRouter函数2.HandleFunc函数设置路由的HTTP方法设置路由的域名限制HTTP 方案设置路径前缀和子路由3.PathPrefix函数五.References一.概述 gorilla/mux…

FileMaker中的腳本觸發器學習筆記

脚本触发器 **脚本触发器是始终绑定到用户布局接口。对于数据表或者字段。只有在而已接口才能触发。**如果某一个布局或者对象上包含触发器,则其右下角会有触发器图标**当触发一个事件时,有且仅有一个触发器会被执行.布局级别的触发器**ONRECORDLOAD :加…

vim学习笔记(四)

下面是我的最近更新&#xff0c;差点删除。 下面的笔记摘自vimtutor。<CR>表示回车 删除命令 在normal模式下&#xff1a; de 删除一个单词&#xff0c;不包含空格 dw 删除一个单词&#xff0c;包含空格 dd 删除当前行 1,10d 删除指定行&#xff0c;第1到10行 ndd…

文件和缓存项目依赖

文件和缓存项目依赖 要创建缓存依赖&#xff0c;你需要创建一个 CacheDependency 对象并在添加依赖的缓存项目时使用它。例如&#xff0c;下面的代码创建一个缓存项目&#xff0c;它在一个 XML 文件被修改、删除、覆盖时自动从缓存中移除&#xff1a; CacheDependency prodDepe…

python函数的基础知识_Python入门基础知识点(函数进阶)

动态参数&#xff1a; 动态接收位置参数&#xff1a; def eat(*args): #在形参位置&#xff0c;*叫做聚合 print(我想吃,args) eat(大米饭,中米饭,小米饭) #收到的结果是一个tuple元祖 动态接收参数的时候要注意: 动态参数必须在位置参数后面&#xff0c;否则&#xff1a; def …

【CentOS】利用Kubeadm部署Kubernetes (K8s)

【CentOS】利用Kubeadm部署Kubernetes &#xff08;K8s&#xff09;【阅读时间&#xff1a;约10分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求三、具体实验流程1 系统准备2 安装常用包3 使用aliyun源安装docker-ce4 安装kubectl、kubelet、kubeadm5 初始…

HttpClient4.4 登录知乎(详细过程)

引言 HttpClient是java语言下一个支持http协议的客户端编程工具包&#xff0c;它实现了HTTP协议的所有方法&#xff0c;但是不支持JS渲染。我们在做一些小玩意时&#xff0c;有可能需要登录某些网站获取信息&#xff0c;那么HttpClient就是你的好帮手&#xff0c;废话不多说&am…

vim学习笔记(一)

&#xff1a;vertical sfind 垂直分隔窗口(vsf)&#xff0c;但是两个窗口的内容完全相同。在编辑的时候&#xff0c;内容也完全相同&#xff0c;如果要关闭一个窗口&#xff0c;输入&#xff1a;exit即可&#xff1a;buffers 显示整个缓冲区列表ndG 删除从当前行到指定n行中的…

Retrofit源码研究

2016-05-06 15:35:27 最近抽空研究了一下Retrofit源码&#xff0c;包括API使用、源码结构、使用到的设计模式、SDK的架构设计、作者设计/实现思路等&#xff0c;会形成一系列文章。 以前Retrofit还是1.9的时候&#xff0c;简单的写过一篇文章&#xff0c;简单研究下Retrofit&am…

wpf窗口向左向上_PaperWM:GNOME 下的平铺窗口管理

我使用 Gnome 已有很长时间了&#xff0c;但是我仍然有点想念平铺窗口管理器。六个月前&#xff0c;一个朋友告诉我有关 PaperWM 的消息&#xff0c;它使你可以在 Gnome 中平铺窗口&#xff01;我立即安装了它&#xff0c;并从那时起我一直在使用它。-- Julia Evans(作者)当我开…

Docker的安装、镜像源更换与简单应用

Docker的安装、镜像源更换与简单应用【阅读时间&#xff1a;约20分钟】一、概述二、系统环境&项目介绍1.系统环境2.项目的任务要求三、Docker的安装四、Docker的简单应用1. 运行第一个容器2. Docker基本操作3. MySQL与容器化3.1 拉取MySQL镜像3.2 构建docker镜像3.3 MySQL容…

vim学习笔记(三)

1.vim的配置文件在哪里&#xff1f;在normal模式下输入:echo $VIMVim的主配置文件为vimrc文件&#xff0c;它分为两个版本&#xff1a;global和personal&#xff0c;其中前者一般在/usr/share/vim/vimrc&#xff0c;后者一般在~/.vimrc,它是一个隐藏文件找到home目录的方法:ech…

python 学术_Python

前几天实验室一个师兄给我一个质谱结果&#xff0c;让帮忙做下go的功能富集&#xff0c;数据格式大概是这样的&#xff1a;由于之前做go和kegg时都是跑流程&#xff0c;像这种针对性的go富集还没做过&#xff0c;说到底&#xff0c;还是由于自己手上缺少数据&#xff0c;没有属…

Hive的Security配置

为了更好地使用好Hive&#xff0c;我将《Programming Hive》的Security章节取出来&#xff0c;翻译了一下。 Hive还是支持相当多的权限管理功能&#xff0c;满足一般数据仓库的使用。 Hive由一个默认的设置来配置新建文件的默认权限。 Xml代码 <property> <name>…

Docker安装Apache与运行简单的web服务——httpd helloworld

Docker运行简单的web服务——httpd helloworld目录【阅读时间&#xff1a;约5分钟】一、Docker简介二、Docker的安装与配置【CentOS环境】三、Docker运行简单的web服务——httpd helloworld四、References一、Docker简介 Docker 是一个开源的应用容器引擎&#xff0c;让开发者…

在CentOS 6.2上搭建vim开发环境

在CentOS 6.2上搭建vim开发环境最后更新日期&#xff1a;2013-07-051.首先使用Ubuntu&#xff08;所在ip为192.168.16.230&#xff09;翻墙登陆http://www.vim.org/&#xff0c;下载其上面的vim相关插件到Ubuntu的下载目录下&#xff1a;cd ~/下载/http://ctags.sourceforge.ne…

python基础(三元运算+深浅拷贝+函数参数)

三元运算 三元运算&#xff0c;又称三目运算&#xff0c;主要作用是减少代码量&#xff0c;是对简单的条件语句的缩写。 1 书写格式&#xff1a; 2 result 值1 if 条件 else 值2 3 即如果条件成立&#xff0c;则将值1赋给result变量&#xff0c;如果不成立&#xff0c;将值2赋…

pythonapi是什么_python接口自动化(一)--什么是接口、接口优势、类型(详解)...

简介经常听别人说接口测试&#xff0c;接口测试自动化&#xff0c;但是你对接口&#xff0c;有多少了解和认识&#xff0c;知道什么是接口吗&#xff1f;它是用来做什么的&#xff0c;测试时候要注意什么&#xff1f;坦白的说&#xff0c;笔者之前也不是很清楚。接下来先看一下…

【阶段小结】协同开发——这学期的Git使用小结

【阶段小结】协同开发——这学期的Git使用小结一、Git简介1. Git简单介绍2. Git工作流程以及各个区域3. Git文件状态变化二、Git安装&Git基本配置三、个人踩坑1. xcode project“抽风式”问题2. 如何拯救git仓库一、Git简介 1. Git简单介绍 Git是一个分布式版本控制软件&…

PHP函数printf()、sprintf()的用法

printf()函数优点在于可以格式化输出 格式: %[padding_character][-][width][.precision]type 所有的转换说明都是以%开始,如果想打印一个%符号,必须用%% &#xff1b; 参数“padding_character”是可选&#xff0c;它将被用来填充变量直至所指定的宽度&#xff0c;该参数的作用…

20150411--Dede二次开发-01

20150411--Dede二次开发-01 目录 一、目前市场流行的电子商城系统 1 二、ecshop的介绍 1 三、安装 2 四、echsop 的目录结构 5 五、分析ecshop里面程序的架构 5 六、小试牛刀把面包屑导航改成两个大于号 6 1、根据php页面找出该页面对应的模板。 6 2、找到category.dwt模板文件…

修改cpu型号重启不变_猫头鹰展示D系列新款140毫米CPU散热器:更大散热片,能压400瓦...

猫头鹰一直以超强的CPU风冷散热器在电脑配件市场闻名遐迩&#xff0c;在台北电脑展期间&#xff0c;除了展出了概念性的无风扇CPU散热器&#xff0c;还宣布了发布D系列新款CPU散热器的计划。新的未命名的散热器相比与目前的NH-D15和NH-D15S型号要多一根热管&#xff0c;性能进一…

管理虚拟机的艺术——有备无患

随心前言&#xff1a;求求你们多多给虚拟机做一下备份~~ 超前预告&#xff1a;下一次分享一下linux/window to go的小玩意&#xff08;把系统安装到U盘&#xff0c;即插即用&#xff09; 接下来的博客尝试一下用随笔的形式&#xff0c;来写写自己感兴趣的一些玩意&#xff0c;比…

coreseek最大检索数只有1000的问题!

在 测试中发现&#xff0c;综艺视频只能看33页&#xff0c;每页10条&#xff0c;始终不得其解。经仔细分析&#xff0c;是csft.conf中的配置&#xff0c;下面修改说明如下&#xff1a;先将csft.conf中的searchd部分&#xff0c;将1000默认值改为10000max_matches 10000然后在调…

iframe怎么用_怎么样减少无效URL的爬行和索引

少年老成的云晨守望同学(题外话&#xff1a;少年老成是好事哈。我20多岁时人家说我像40岁&#xff0c;我40多岁时好多人说我像30多&#xff0c;男人20到50岁可以做到基本一个样子)在网络营销实战密码网站贴了个帖子&#xff1a;《透过京东商城看国内一线B2C网站SEO通病》。建议…

502 Server dropped connection

在本地电脑上开启了&#xff0c;全局VPN代理后&#xff0c;出现 502 报错。 502 Server dropped connection The following error occurred while trying to access http://localhost/invo/:502 Server dropped connection. 出现这种情况的原因是&#xff0c;vpn 链接挂了&…

【OpenCV】在Linux上使用OpenCvSharp

OpenCvSharp是一个OpenCV的 .Net wrapper,应用最新的OpenCV库开发,使用习惯比EmguCV更接近原始的OpenCV,该库采用LGPL发行,对商业应用友好。