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

Android Studio使用

2016-06-06 10:17 519 查看
Android Studio下载地址:

AndroidDevTools

Android Studio中文社区

一、导入项目(工程)

1.导入一个Android Studio项目,直接Open an existing Android Studio project;

2.导入一个Eclipse项目:Import project(Eclipse ADT,Gradle etc.)

3.导入一个含引用库的Eclipse工程:Import project时会自动把引用库导入并转换成Android Studio工程,如果没有把引用库导入,把引用库作为一个工程导入Android Studio,这时变成了一个Android Studio结构的库,然后通过Import Module的方式把Library导入

二、导入项目(模块)

Import Module:将一个模块(项目或库)导入工程,会在settings.gradle中添加include,如果需要引用该模块,则在对应某模块添加依赖

三、Gradle构建系统

1.整个项目的build.gradle文件

buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.1.0'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}


buildscript{…}配置了驱动构建过程的代码。

repositories声明使用jcenter()仓库,dependencies声明jcenter文件的依赖路径,联合起来就是依赖jcenter()服务中包名为com.android.tools.build的,版本为2.1.0的gradle插件库

2.各个模块编译所用的build.gradle文件

build.gradle文件可以通过Project Structure进行配置

1)

apply plugin: 'com.android.application'


这里引入了Gradle的application插件,这个插件提供了所有构建和测试Android应用程序所需要的东西。

如果Module是一个库

apply plugin: 'com.android.library'


2)

denpendences:

File dependency:本地依赖,libs文件夹下的所有jar文件

compile fileTree(dir: 'libs', include: ['*.jar'])


Module dependency:项目依赖

compile project(':library')


Library dependency:远程依赖

compile 'com.android.support:appcompat-v7:23.4.0'


3)

android{…}配置了所有android构建过程需要的参数。这里也是Android DSL的入口点。

android {
compileSdkVersion ANDROID_BUILD_TARGET_SDK_VERSION as int
buildToolsVersion ANDROID_BUILD_TOOLS_VERSION

defaultConfig {
}

buildTypes {
}

compileOptions {
}

sourceSets {
}

lintOptions {
}

productFlavors {
flavor1 {
}

flavor2 {
}
}
signingConfigs {
release {
storeFile file(×.keystore)
storePassword ×××
keyAlias ××××
keyPassword ×××
}
}
}


compileSdkVersion 23
buildToolsVersion "23.0.3"


指定编译SDK版本,即API Level和构建工具版本,包括了打包工具aapt、dx等

defaultConfig {
applicationId "com.it.zjhz.hellostudio"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
ndk {
moduleName genius
cFlags -DANDROID_NDK -D_RELEASE
ldLibs m, log, jnigraphics
abiFilters all
}
}


默认配置:首先进行了一个 applicationId 配置,该配置不是必须,但库类型的 Model 将无此配置。

ndk 部分,这个是额外加入的,其作用是可以直接编译 NDK 代码,不需要自己执行

buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
debug {
signingConfig signingConfigs.config
}
}


在这里进行配置的是你的编译配置,可以看见这里有一个 release ,当然也就是有 debug 部分,两个部分配置都是一样。

在这里主要进行的配置是是否进行代码混淆,所以有一个代码混淆的开关,以及代码混淆的具体文件,文件有两种,无论哪种都行。

每一个Build Type都会生成一个新的APK。

compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}


在这里你可以进行 Java 的版本配置,以便使用对应版本的一些新特性。

sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}

}


这个部分,看名字应该有个大概意思就是说源码设置,其是很多从 Eclipse 中迁移过来的代码,大部分中都将带有这个设置,因为 Eclipse的文件夹与 AS 不尽相同,所以需要手动指定。

以上是一些常用的设置,其中最后一个是引用 *.so 文件的时候使用的方法。

lintOptions {
abortOnError false
}


这个是设置 编译的 lint 开关。程序在buid的时候,会执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。

productFlavors {
flavor1 {
packageName='com.example.qiujuer.application1'
manifest.srcFile 'exampleapk/AndroidManifest1.xml'
}

flavor2 {
packageName='com.example.qiujuer.application2'
manifest.srcFile 'exampleapk/AndroidManifest2.xml'
}
}


设置你的产品发布的一些东西,比如你现在一共软件需要发布到不同渠道,且不同渠道中的包名不同,那么可以在此进行配置;甚至可以设置不同的 AndroidManifest.xml 文件。

每一种组合(包含Build Type和Product Flavor)就是一个Build Variant(构建变种版本)。

signingConfigs {
release {
storeFile file(×.keystore)
storePassword ×××
keyAlias ××××
keyPassword ×
4000
××
}
}


为包签名的配置,位置,键名,两个密码,还有存储类型一起形成了签名配置。

默认情况下,debug被配置成使用一个debug keystory。 debug keystory使用了默认的密码和默认key及默认的key密码。 debug keystory的位置在$HOME/.android/debug.keystroe,如果对应位置不存在这个文件将会自动创建一个。

task clearApk(type: Delete) {
delete '../release/' + POM_ARTIFACT_ID + '_' + VERSION_NAME + '.apk'
}

task makeApk(type: Copy) {
from('build/outputs/apk/')
into('../release/')
include('app-debug.apk')
rename('app-debug.apk', POM_ARTIFACT_ID + '_' + VERSION_NAME + '.apk')
}
makeApk.dependsOn(clearApk, build)


代码分为3个部分,分别是删除,拷贝,以及将其连接起来的一个设置。目的是拷贝 build/outputs/apk下面的debug apk文件到项目根目录的 release 文件夹下,并且更名。代码 task 上右击,run()。

其中有两个参数:POM_ARTIFACT_ID VERSION_NAME写在项目根部的 gradle.properties 文件中

3.local.properties

## This file is automatically generated by Android Studio.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file should *NOT* be checked into Version Control Systems,
# as it contains information specific to your local configuration.
#
# Location of the SDK. This is only used by Gradle.
# For customization when using a Version Control System, please read the
# header note.
sdk.dir=D\:\\Android\\sdk


其中包含了你的 sdk 配置,当然你还可以配置 ndk 路径;格式与 sdk 一样。

4.settings.gradle

include ':app'


在你的项目中如果有多个 Model 存在的时候,就可以选择包含哪些进行编译。

5.gradle.properties

在该文件中一般保存的是项目的一些变量等

四、Apk打包

1)Build–>Build APK:使用Debug的key打包成APK文件

2)Build–>Generated Signed APK:

3)运行时打包:在build.gradle中添加signedConfig以及buildtype,在运行时按照设置的签名打包

多渠道打包:

在Manifest.xml中添加渠道标签

<meta-data android:name="UMENG_CHANNEL" android:value="${UMENG_CHANNEL_VALUE}"/>


在build.gradle中添加以下代码

productFlavors{
xiaomi{}
qihu360{}
wandoujia{}
baidu{}
yingyongbao{}
}
productFlavors.all{
flavor->flavor.manifestPlaceholders=[UMENG_CHANNEL_VALUE:name]
}


同步之后Gradle–>build–>assemble自动生成多个版本的apk

六、常用快捷键

自动修正:alt + 回车

注释:Ctrl + / 或者 Ctrl + Shift +/

查找/替换:Ctrl + F/Ctrl + R

上下移动代码:Alt + Shift + 方向键

删除行:Ctrl + delete

重写方法:Ctrl + O

常用插件及自动生成相关代码:Alt + Insert

格式化代码:Ctrl + Alt + L

常用结构语句:Ctrl + Alt + T

七、版本控制

忽略文件

idea 文件夹

.gradle 文件夹

所有的 build 文件夹

所有的 .iml 文件

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