您的位置:首页 > 移动开发 > Android开发

android studio 5.0 MD 开发实践,初识

2015-11-16 17:18 507 查看

前面

本博,将着重于,Android studio下5.0开发

Android studio目前在Android开发领域有多么火热,其实大家都感觉到了。无论是github上大神的demos,还是现如今,google官方给出的android 5.0 material design sample, 以及goole play,豌豆荚一栏,最新版的设计效果,可以预见:以Android studio 为开发平台,展开5.0以后开发,将是android 开发,Android应用的一个惊天巨响,业界也暗流涌动,一股android studio的5.0浪潮时刻会横空出世。

开始

1.安装Android studio

a. as version:1.4.1,

下载地址:https://dl.google.com/dl/android/studio/install/1.4.0.10/android-studio-bundle-141.2288178-windows.exe

此地址是一个代理过的地址,所以不用翻墙,一路很顺利的下载sdk,安装gradle

b.gradle version:2.3.1 此as自带



2.开始hello!

a.点击上图的



b.可以看到这里的项目是这样一个结构的as项目:



c.跑起来看看效果:



d.注意

在界面上,我们看到了5.0的一些新特性:

1.ToolBar,作为一种控件,取代了,5.0以前Actionbar作为导航

2.界面上出现了一个浮动FloatingActionButton,点击在浮动按钮下方会有一个,上浮的提示条:

Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
.setAction("Action", null).show();


代码中:

在5.0以前,如果我们使用了v7的theme,MainAcivity继承自:



5.0以后,使用Material Design的Theme,MainAcivity继承自:



重点来了

**a.as 项目结构**




我们看到根目录下,有四个子目录:

1.manifest

还是Eclipse中的请单位件

2.java

这里面有两个子目录,上面的是我们的项目代码,下面的是测试类。打开测试类,看到项目中其实是自带了,junit测试框架的;

3.res

我们看到这里基本上和eclips项目下没有什么区别,就是多出来一个mipmap,这个是什么东西?

官方给的说法是这样的:他们和drawable使用相同,只是在某些机型和分辨率下,会对图片的缩放有些优化

res/
mipmap-mdpi/
ic_launcher.png
mipmap-hdpi/
ic_launcher.png
mipmap-xhdpi/
ic_launcher.png
mipmap-xxhdpi/
ic_launcher.png
mipmap-xxxhdpi/
ic_launcher.png  # App icon used on


4.Gradle Scripts

文件如下



相关文档:http://www.open-open.com/lib/view/open1415793464648.html

相关文档(需要翻墙,so,把原文的一些类容粘了一下在下面):http://ask.android-studio.org/?/article/23

一堆资料说的很多名词,理解上还是云山雾罩的,做Android开发都能说上两句,“这几文件不就是完成项目构建的嘛,处理依赖jar包”

点开上面三个文件,我们来看看:

默认build.gradle脚本里面是空白(Project helloword)、但是如果项目中有依赖远程项目的,其脚本如下:

buildscript {
repositories {
//jcenter():声明使用 maven 仓库。在老版本中,此处为 mavenCentral()。
mavenCentral()
}
dependencies {
// 项目id
classpath 'com.android.tools.build:gradle:1.2.3'
}
}


build.gradle(Modle app),里groovy脚本如下:

apply plugin: 'com.android.application'//声明,这是一个Android程序,也可以是java,其他等

android {//整个项目的编译,运行环境
compileSdkVersion 23  6.0下编译
buildToolsVersion "23.0.2"//sdk tool level

defaultConfig {//和manifest中某些类似
applicationId "com.example.administrator.myapplication"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
/**
* 混淆设置
*/
buildTypes {
release {

minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
//某个文件夹下面全部依赖
compile fileTree(dir: 'libs', include: '*.jar')
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
//v7,design依赖
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
}


资料:

- 默认的 module 目录下的 build.gradle 文件内容如上。 apply plugin:

‘com.android.application’: 表示使用 com.android.application 插件。也就是表示,这是一个

android application module 。 com.android.library 表示,这是一个 android

library module 。 android: 配置所有android构建过程需要的参数。 compileSdkVersion:

用于编译的 SDK 版本。 buildToolsVersion: 用于 Gradle 编译项目的工具版本。 defaultConfig:

Android 项目默认设置。 applicationId:应用程序包名。 minSdkVersion:最低支持 Android 版本。

targetSdkVersion:目标版本。实际上应为测试环境下测试机的 Android 版本。 versionCode:版本号。

5. versionName:版本名称。 buildTypes: 编译类型。默认有两个: release 和 debug 。我们可以在此处添加自己的 buildTypes ,可在 Build Variants 面板看到。 minifyEnabled:

是否使用混淆。在老版本中为 runProguard ,新版本之所换名称,是因为新版本支持去掉没使用到的资源文件,而 runProguard

这个名称已不合适了。

2. proguardFiles: 使用的混淆文件,可以使用多个混淆文件。此例中,使用了 SDK 中的 proguard-android.txt 文件以及当前 module 目录下的 proguard-rules.pro 文件。 dependencies: 用于配制引用的依赖。 compile fileTree(dir: ‘libs’, include: [‘*.jar’]): 引用当前 module 目录下的 libs

文件夹中的所有 .jar 文件。

- compile ‘com.android.support:appcompat-v7:21.0.3’

引用 21.0.3版本的 appcompat-v7 (也就是常用的 v7 library 项目)。

setting.gradle,里脚本如下:



如果你的一个 module 并不是 project 根目录下,你可以这么设置。

include ':app',只包含,app项目,没有作为libary的项目依赖


资料:

- 默认的 project 目录下的 settings.gradle 文件内容如上。可有可能默认情况下, project 目录下的

settings.gradle 文件不存在,你可以自己创建。 include ‘:app’:表示当前 project 下有一个名称为

app 的 module

更多关于gradle

gradle,groovy,点击下面网址:

.https://testerhome.com/topics/1867

真的应该认真学学下,对于gradle,下面的博主是这样说的:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: