MyException - 我的异常网
当前位置:我的异常网» Android » Android Studio 入门级课程(二):新建一个属于自

Android Studio 入门级课程(二):新建一个属于自己的工程并安装Genymotion模拟器

www.MyException.Cn  网友分享于:2013-10-11  浏览:0次
Android Studio 入门级教程(二):新建一个属于自己的工程并安装Genymotion模拟器

生命壹号:http://www.cnblogs.com/smyhvae/

文章来源:http://www.cnblogs.com/smyhvae/p/4392611.html

 

【系列】

Android Studio 入门级教程(一)

Android Studio 入门级教程(二):新建一个属于自己的工程并安装Genymotion模拟器

Android Studio 入门级教程(三):gradle项目构建

 

正文

都说了放假不休息,奏是这么任性!!! 

【开发环境】

物理机版本:Win7旗舰版(64位)

Android Studio版本:1.1正式版


一、新建工程:

1、新建一个Project:

打开Android Studio,新建一个Project,界面如下:

4669bc3c-159d-4446-9566-b77775287ace

ea17f64f-1254-491a-921f-4f8226f3d8f6

上图中,设置好工程名和路径之后,接下来可以一路next:

1918387e-7acf-44dc-99fd-d8153b2122a8

793ccdaf-40cb-4da5-8328-75237bab10cb

17a4e876-78ce-48d2-9eca-d66b7e705b4b

二、Android Studio使用方法;

1、修改项目结构视图:

Project新建完了以后,默认的结构如下:

2b7c2408-bd00-4c3b-bfc2-c64fbe9045c3

上图可以看到,AS的目录结构和Eclipse中有很大区别,我们看下面的这张表格就一目了然了:

当然了,如果想切换成和Eclipse中类似的视图,点击左上角进行切换视图就行了:

40c14b16-30a6-45dc-9ccb-37abac1d48fa

切换之后,视图如下:

90b8ed4d-417b-416f-8359-674384029a42

上图中,箭头处的app其实是一个module,关于module的概念,稍后会有解释哦。

 

2、工具栏的常用功能:

在AS的工具栏有几个常用的按钮,分别是Gradle同步、AVD Manager、SDK Manager、DDMS,如下图所示:

3280fa4d-15bd-41ce-95cb-953bb7155992

解释如下:

    • Gradle同步:在你项目运行或者更改Gradle配置的时候都要点击下这个按钮,会下载相应的依赖
    • AVD Manager:模拟器管理
    • SDK Manager:就是管理你的SDK版本
    • DDMS:即 Dalvik Debug Monitor Service,Dalvik调试监控服务。

 

3、导入第三方jar包:

eclipse中导入jar包是先将jar包复制到工程文件中,然后add to build path,但是在Android studio中可不是这样的。在Android studio中导入jar包的方法是:(以谷歌的gjson.jar为例)

将gson-2.3.jar文件拷贝到工程文件的libs目录下:

1ff80ab1-9b73-4500-8647-7554a4453317

导入之后,选中jar包,然后点击下图中箭头处的按钮:(synchronize:同步,可以理解为刷新)

462c6e87-5525-43eb-abfc-69165941bb66

搞定。

 

4、修改默认Activity继承AppCompatActivity:

在Android Studio 2.1中新建Activity默认继承AppCompatActivity,感觉这点十分不爽(老版本的AS不会出现这种情况)。找了很久,终于发现在Android Studio安装目录下有个模板文件,修改其中的参数即可。

具体操作可以参考下面这篇博文:

Android Studio修改默认Activity继承AppCompatActivity

 

三、安装genymotion模拟器:

1、Genymotion的安装:

Genymotion无疑是目前最快最好用的模拟器。官网下载地址:https://www.genymotion.com/

先注册,然后下载,安装VirtualBox最简单的方式就是下载包含VirtualBox的Genymotion包,如下图红框部分所示:

c8f74667-94a5-441c-b8fd-55c94ca9b723

下载完成后,开始安装。然后运行Genymotion软件,会提示你需要创建虚拟设备,点击yes按钮开始创建虚拟设备:

15940687-b37f-4ba3-8762-f5d952b5373a

使用之前注册的账号进行连接:

a2d6a23f-9174-4146-a33e-92b8ace739d5

然后选择其中一个版本的模拟器:

d864b044-1ef6-4e94-b41d-feb6cf93088a

b0d013d0-059d-4e23-93f0-2645f99588ff

84da4d97-8e49-400e-b5cd-fdc383fd7d2f

a9d7d5fc-4f45-42d8-95dd-e2090f6712a6

当然了,如果要在模拟器上运行程序,还要确保模拟器加载了Android SDK:

8a3e94e0-a2dc-42f2-ab47-9aee2050b6e8

备注:如果启动模拟器时出现下面的错误:

cc6f7b70-b1cd-4c0e-84c1-be7def9f58b4

升级电脑显卡驱动就行了。

这样,我们的模拟器就建好了,并且可以启动起来。接下来要将模拟器和Android Studio相关联。

 

2、将模拟器Genymotion和Android Studio相关联:

Genymotion官网提示有两种方法(如下图所示),一种是在线安装,另一种是离线安装。方法已经很清楚了,我就不截屏演示了哈。

144e6f92-12d4-49a4-a521-6643982e1720

插件安装好之后,紧接着重启软件,让新加载的插件生效。重启软件Android Studio后,选择菜单栏“View--Toolbar”,让工具栏显示出来,可以看到工具栏多了个Genymotion Device Manager的图标:

3f2ea237-d046-4a21-8eed-e4207133e91f

点击这个图标,弹出如下界面:

d785708e-e314-4681-978b-57239b548210

上图中,加载我们之前安装好的Genymotion文件夹即可。然后再点击这个图标,弹出如下界面:

9be4ab45-4598-4e70-878b-69720b90e6f5

大功告成。

紧接着,在模拟器上运行这个程序:

dcbe5fb9-1a46-49c8-ab52-480904286158

运行效果如下:

3af8d4a3-04af-49be-bc8e-a3bbe5f9bdc4

上图中,可以看到,我编译的版本是API 19,但模拟器的版本是API 16,但是程序依然可以运行,说明Android Studio在版本的兼容问题上做的很好。但是之前用IntelliJ IDEA,就必须要求编译的版本和模拟器(真机)的版本要保持一致。

四、新建一个module形式的第三方library:(引入module的概念)

再来看一下这张表:

看完图,应该知道module的概念了吧。细心的小伙伴可以发现,application的module的有一个手机图标:

49f439c8-0028-4166-9d6f-b25ae7726d0b

1、新建一个module作为library:(以StickyScrollViewItems这个Library为例

注:StickyScrollViewItems的作用是:子控件可悬停的ScrollView(当子控件滚动到页面顶端的时候固定在顶部)。

在AS中,我们可以新建一个module作为library来使用,操作如下:

7daf1015-b963-4bff-802a-8dd4682c7b73

上图中,在当前的project中新建一个module,然后弹出如下界面:

4ca54992-59b4-44f9-b10a-dcab70cce09b

上图中,选择module的类型为Android Library,然后继续:

f23cf745-177c-485c-81b5-00e3592d5d7c

b81ea313-0147-4ba0-9214-7fd2d4214690

上图中,既然这个module是一个libray,就不需要Activity了。

aaa98067-911d-4f66-a016-ec3705540425

上图中箭头处的两个module:第一个是application的module,第二个是lirary的module,可以看到,他们俩的icon图标长得不一样。

 

2、将GitHub上下载好的StickyScrollViewItems-master压缩包中的部分文件拷贝到lirary的module中:

操作如下:

(1)将StickyScrollViewItems-master\StickyScrollViewItems-master\library\res\values目录下的attrs.xml文件拷贝到lirary的module中的values目录下。

(2)将StickyScrollViewItems-master\StickyScrollViewItems-master\library\src\com\emilsjolander\components\StickyScrollViewItems目录下的StickyScrollView.java文件拷贝到lirary的module中的java目录下。

最终效果如下:

2b876886-112f-4a9c-9cbb-a53f92cebed6 

总结:新建一个module形式的第三方library的通用做法是:

(1)新建一个library形式的module,删掉这个module中src/main目录里面的所有文件(包括删掉java、res、AndroidManifest.xml)

(2)复制第三方库的AndroidMainfest.xml、res、src文件(夹)到库目录的src/main目录中

(3)将src/main目录下的src目录重命名(Shift+F6)为java

(4)删除库module中的build.gradle文件(注意不要修改错了地方)中的dependencies和release模块

 

3、将application的module依赖上library的module:

操作如下:

8ce1d4f7-7fd4-4ac5-aeee-f8887d4c7576

上图中,右键选中app,选择“Open Module Settings”,弹出如下界面:

5231ef7a-0f4b-4769-8e81-1aaae50f5f92

按照上图的步骤,在Dependencies标签中,添加"Module dependency",弹出如下界面:

72599598-645a-49e0-b9e3-97cdce0e28dc

上图中,将StickyScrollViewItems的module导入一下就行。

依赖成功,于是,我们在布局文件中是可以看到它的代码提示的:

79fefdb7-bfd8-4106-9b51-8ba4ce1ffb3a

下面来测试一下。

4、测试library这个module的可用性:

将activity_main.xml修改为如下代码:

复制代码
 1 <com.smyhvae.stickyscrollview.StickyScrollView
 2     android:layout_width="match_parent"
 3     android:layout_height="match_parent"
 4     android:fadingEdge="none"
 5     android:overScrollMode="never"
 6     android:fillViewport="true"
 7     xmlns:android="http://schemas.android.com/apk/res/android">
 8 
 9     <LinearLayout
10         android:layout_width="match_parent"
11         android:layout_height="wrap_content"
12         android:orientation="vertical">
13 
14         <View
15             android:layout_width="match_parent"
16             android:layout_height="200dp"
17             android:background="@color/blue"/>
18 
19         <View
20             android:layout_width="match_parent"
21             android:layout_height="100dp"
22             android:background="@color/red"
23             android:tag="sticky"/>
24 
25         <View
26             android:layout_width="match_parent"
27             android:layout_height="100dp"
28             android:background="@color/green"/>
29         <View
30             android:layout_width="match_parent"
31             android:layout_height="100dp"
32             android:background="@color/white"/>
33 
34         <View
35             android:layout_width="match_parent"
36             android:layout_height="300dp"
37             android:background="@color/purple"/>
38 
39         <View
40             android:layout_width="match_parent"
41             android:layout_height="100dp"
42             android:background="@color/yellow"/>
43 
44     </LinearLayout>
45 </com.smyhvae.stickyscrollview.StickyScrollView>
复制代码

上方代码中,我们引入了StickyScrollView这个module作为library,核心代码是第23行,我们为红色的View添加了android:tag="sticky"这个标签,于是它将具有悬停的属性。然后直接运行程序就行了。

这一段的整个工程文件如下:(大家可以导入到自己的AS中运行看一下效果)

链接:http://pan.baidu.com/s/1eQ8epsY

密码:k9i1 

 

五、删除某个module:

f919a74d-44a6-4f4e-aef5-c374e559a6c3

上图中,如果我想删掉StickyScrollView这个module,该怎么办呢?办法是:选中StickyScrollView这个module,并点击右键,发现没有delete选项,没有关系,我们选择上图中红框部分的"Open module Settings"选项,弹出如下界面:

c9ab4955-d395-491e-8bc0-09f41a4bd107

上图中,点击箭头处的减号,就可以删掉了。同时我们要去掉app这个module对它的依赖:

d99b2f1b-57e3-49fa-9d53-e713b59cf7b3

然后会发现,StickyScrollView这个module的图标消失了:

36245206-1846-4478-b328-1aad1a266b68

上图中,现在右键它,就可以delete掉了,而且是从硬盘上直接delete掉:

44652c52-829c-4e4e-9986-bfddf1b4b656

 

 

六、删除文件的小技巧:(安全删除)

如果我们想删掉某个文件,可以直接右键,然后delete,但是Android Studio有一个更人性化的体验。比如我想删掉布局文件时:

76d579ef-2a53-44c9-b67f-8bea5180790f

上图中,点击delete进行删除, 弹出如下界面:

c9f2dc29-d295-4c04-8585-87acbe9a984d

上图中,如果将红框部分打钩,然后点击OK,软件则会提示你,有哪些地方用到了这个文件:

f3af32af-9e7b-4418-ba12-6f49a5c3947d

上图显示,有一个地方用到了这个文件,点击上图中的"View usages",就可以看到详细的情况了:

dc5626ef-3d87-46c7-94f8-a87c9f91a46c

如果你执意要删除,单击上图中的箭头位置即可,怎么样?用户体验还不错吧?

怎么?还不满意啊?那我明天继续战斗,敬请期待~~~

 

备注:

本人的第四段中,通过新建一个module作为library,将StickyScrollViewItems这个Library引用进来了。整个工程文件在第四段的末尾也给出了下载链接,其中的gradle文件代码如下:(gradle将在下一篇文章中讲到)

application的build.gradle:

复制代码
复制代码
 1 // Top-level build file where you can add configuration options common to all sub-projects/modules.
 2 
 3 buildscript {
 4     repositories {
 5         jcenter()
 6     }
 7     dependencies {
 8         classpath 'com.android.tools.build:gradle:1.1.0'
 9 
10         // NOTE: Do not place your application dependencies here; they belong
11         // in the individual module build.gradle files
12     }
13 }
14 
15 allprojects {
16     repositories {
17         jcenter()
18     }
19 }
复制代码
复制代码

 

app的build.gradle:

复制代码
复制代码
 1 apply plugin: 'com.android.application'
 2 
 3 android {
 4     compileSdkVersion 19
 5     buildToolsVersion "21.1.1"
 6 
 7     defaultConfig {
 8         applicationId "com.smyhvae.helloworld"
 9         minSdkVersion 14
10         targetSdkVersion 19
11         versionCode 1
12         versionName "1.0"
13     }
14     buildTypes {
15         release {
16             minifyEnabled false
17             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
18         }
19     }
20 }
21 
22 dependencies {
23     compile fileTree(dir: 'libs', include: ['*.jar'])
24     compile project(':stickyscrollview')
25 }
复制代码
复制代码

 

library这个module的build.gradle:

复制代码
复制代码
 1 apply plugin: 'com.android.library'
 2 
 3 android {
 4     compileSdkVersion 19
 5     buildToolsVersion "21.1.1"
 6 
 7     defaultConfig {
 8         minSdkVersion 14
 9         targetSdkVersion 19
10         versionCode 1
11         versionName "1.0"
12     }
13     buildTypes {
14         release {
15             minifyEnabled false
16             proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
17         }
18     }
19 }
20 
21 dependencies {
22     compile fileTree(dir: 'libs', include: ['*.jar'])
23 }
复制代码

 

文章评论

我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
程序员必看的十大电影
程序员必看的十大电影
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
漫画:程序员的工作
漫画:程序员的工作
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
一个程序员的时间管理
一个程序员的时间管理
程序员都该阅读的书
程序员都该阅读的书
每天工作4小时的程序员
每天工作4小时的程序员
不懂技术不要对懂技术的人说这很容易实现
不懂技术不要对懂技术的人说这很容易实现
Java程序员必看电影
Java程序员必看电影
十大编程算法助程序员走上高手之路
十大编程算法助程序员走上高手之路
中美印日四国程序员比较
中美印日四国程序员比较
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
 程序员的样子
程序员的样子
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
Web开发者需具备的8个好习惯
Web开发者需具备的8个好习惯
如何成为一名黑客
如何成为一名黑客
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
程序猿的崛起——Growth Hacker
程序猿的崛起——Growth Hacker
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
10个调试和排错的小建议
10个调试和排错的小建议
我的丈夫是个程序员
我的丈夫是个程序员
那些争议最大的编程观点
那些争议最大的编程观点
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
编程语言是女人
编程语言是女人
程序员的鄙视链
程序员的鄙视链
老程序员的下场
老程序员的下场
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
代码女神横空出世
代码女神横空出世
为什么程序员都是夜猫子
为什么程序员都是夜猫子
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
我是如何打败拖延症的
我是如何打败拖延症的
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
总结2014中国互联网十大段子
总结2014中国互联网十大段子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有