Android Studio使用
来源:互联网 发布:卡斯特的复仇知乎 编辑:程序博客网 时间:2024/06/05 10:10
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 ××× }}
为包签名的配置,位置,键名,两个密码,还有存储类型一起形成了签名配置。
默认情况下,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 文件
- 【android】 android studio使用
- android studio使用教程
- Android Studio使用教程
- Android Studio使用教程
- Android Studio使用教程
- android studio 使用
- Android Studio使用大全
- Android Studio使用教程
- Android studio 使用问题
- Android Studio使用教程
- Android Studio使用问题
- Android Studio使用教程
- Android Studio使用
- Android Studio使用教程
- Android studio使用教程
- Android Studio使用教程
- Android Studio使用教程
- android studio使用收集
- CRF as RNN 代码解读
- JavaScript 常用 dom 操作
- virtualbox安装虚拟机
- bash: ./java: cannot execute binary file 问题--安装JDK遇到的问题
- 面试中常见链表问题3:旋转链表
- Android Studio使用
- C++程序设计语言练习6.10 字符串函数的写法
- 深入推荐引擎相关算法 - 协同过滤
- Android拍照或选择本地图片并剪裁图片设置成头像
- 孙子算经 序
- Android Studio阅读android 源码
- 举着伞真是累
- AVInputFormat结构体源码介绍
- Redis操作命令总结