使用studio的必要性
- 官方推荐的工具就是studio;
- Google已经宣布将在今年底终止Eclipse Android工具的开发与支持。这包括ADT插件、Ant构建系统、DDMS、Traceview与其他性能和监控工具;
- 众多开源软件都是使用as构建;
- as基于强大的是
最智能的JAVA IDE -IntelliJ IDEA
;2013年5月16日
,在I/O大会上,谷歌推出新的Android开发环境——Android Studio,2015年5月29日
,在谷歌I/O开发者大会上,谷歌发布AndroidStudio 1.3版
as和eclipse对比
高大上,智能贴心,想用不容易
随便举几个优点
- 集成了Gradle 打包工具
- 所见即所得的效果
- 可拖拽的UI操作
- 代码自动补全
- 更多的操作接口
- Google Cloud的集成
- 全新的JUnit
- Maven仓库的集成
实战_2
- 新建Hello Studio
项目结构
参考文档:
file:///F:/android-sdk-studio-new/docs/tools/projects/index.html#ProjectFiles
C:.
│ build.gradle 项目Gradle构建脚本
│ gradle.properties 项目Gradle属性文件
│ gradlew 在没有安装gradle的pc上使用,没用
│ gradlew.bat 在没有安装gradle的pc上使用,没用
│ local.properties 指定sdk所在目录
│ settings.gradle 项目Gradle设置文件
│
├─.gradle
├─.idea
├─app
│ │ .gitignore git忽略文件列表
│ │ app.iml 临时文件,不需要关心
│ │ build.gradle Module Gradle构建脚本
│ │ proguard-rules.pro proguard混淆规则
│ │
│ ├─build 构建目录,相当于Eclipse中默认Java工程的bin目录。编译生成的apk在此目录
│ ├─libs 依赖包
│ └─src
│ ├─androidTest 测试相关代码文件夹
│ │ └─java
│ │ └─com
│ │ └─itheima
│ │ └─myapplication
│ │ ApplicationTest.java
│ │
│ └─main
│ │ AndroidManifest.xml 清单文件
│ │
│ ├─java 项目源码
│ │ └─com
│ │ └─itheima
│ │ └─myapplication
│ │ MainActivity.java
│ │
│ └─res 资源文件
│ ├─drawable .9图片只能放到drawable目录下
│ ├─layout
│ │ activity_main.xml
│ │
│ ├─menu
│ │ menu_main.xml
│ │
│ ├─mipmap-hdpi 类似drawable-hdpi
│ │ ic_launcher.png
│ │
│ ├─mipmap-mdpi 类似drawable-mdpi
│ │ ic_launcher.png
│ │
│ ├─mipmap-xhdpi 类似drawable-xdpi
│ │ ic_launcher.png
│ │
│ ├─mipmap-xxhdpi 类似drawable-xxdpi
│ │ ic_launcher.png
│ │
│ ├─values
│ │ dimens.xml
│ │ strings.xml
│ │ styles.xml
│ │
│ └─values-w820dp
│ dimens.xml
│
├─build
└─gradle
└─wrapper gradle wrapper可以看作是对gradle的封装,它可以使得在没有安装gradle的电脑上也可以使用Gradle进行构建.没啥用
gradle-wrapper.jar
gradle-wrapper.properties
需要自己建立的文件夹
main/assets/
main/aidl/
main/jni/ -->放置c代码
main/jniLibs/ -->放置so库
main/res/raw/
main/res/anim/
gradle构建
- google官网参考(需翻墙):http://tools.android.com/tech-docs/new-build-system/user-guide
- google官网本地:Gradle Plugin User Guide - Android Tools Project Site.mht
- 博客翻译: Android Gradle Plugin指南(一)——简介
- 整合pdf:gradle-plugin-user-guide.pdf
G:\0备课\android studio\Gradle Plugin User Guide
- Gradle官网:http://gradle.org
- 构建:生成app的过程
- 依赖管理:管理依赖的jar包
- 仓库:简单理解就是存的一些jar包
- maven
- ivy
- jcenter仓库地址
安装as之后就安装好了
C:\Program Files\Android\Android Studio\gradle\gradle-2.2.1
gradle配置(最后配置)
- 配置GRADLE_HOME–>
C:\Program Files\Android\Android Studio\gradle\gradle-2.2.1
- 配置GRADLE_USER_HOME–>
D:\java\gradle\.gradle
,默认是在C:\Users\Administrator\.gradle
选择性的修改 - 配置path–>
%GRADLE_HOME%\bin
说说我们项目里面的gradle构建(项目有,模块有)
- Gradle构建脚本(build.gradle)指定了一个项目和它的任务。
- Gradle属性文件(gradle.properties)用来配置构建属性。
- Gradle设置文件(gradle.settings)对于只有一个项目的构建而言是可选的,如果我们的构建中包含多于一个项目,那么它就是必须的,因为它描述了
哪一个项目参与构建
。每一个多项目的构建都必须在项目结构的根目录中加入一个设置文件。
实战_常用依赖
- 新建Module,删除Module
- 导入v4,v7,v13–>offline
- 本地
- 仓库
- 导入.jar
- 本地
- 仓库
- 导入lib工程
- 存放.9图片
实战_导入项目
- 导入eclipse项目
- 导入github上的项目
- https://github.com/nostra13/Android-Universal-Image-Loader.git
- 编译出错的处理
- 常见3个错误
- 插件版本
- compilesdversion
- buildtoolsversion
实战_整合svn
- svn share操作
- svn checkout操作
- svn 的commit,update,merge操作
实战_整合git
- share项目到github
- 从git仓库拉取对应的工程
ignore忽略文件
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
*.iml
.idea
实战_debug模式
实战_测试用例
实战_项目打包
- 混淆
- 分渠道
插件介绍
ADB Idea:方便卸载apk,删除缓存
Android ButterKnife Zelezny :ButterKnife对应的插件
Android Code Generator Plugin :生成ViewHolder,生成initView方法
Codota:搜索代码块
GsonFormat:jsonString自动转bean插件
genymotion-idea-plugin:genymotion对应的插件
SelectorChapek for Android:帮助生成selector
Sexy Editor:代码区域加背景
Android Drawable Importer:同一张图片生成多个自动生成多分辨率图片
Android Layout ID Converter:xml到控件的转换
Android Postfix Completion:toast和log加强
Android Studio Prettify:帮助findViewById
.ignore:git忽略文件高亮效果,文件夹颜色提示
Android Parcelable code generator:生成Parcelable代码
Gradle Dependencies Helper:gradle帮助插件
Android Toolbox Plugin:生成ViewHolder,意义不大
错误还原
- render problems
- com.android.tools.build 版本问题
- compileSdkVersion 版本问题
- buildToolsVersion 版本问题
- 插件版本差异
- 文件开头apply plugin是最新gradle版本的写法,以前的写法是apply plugin: ‘android’, 如果还是以前的写法,请改正过来
- minifyEnabled也是最新的语法,很早之前是runProguard,这个也需要更新下
- 一个是声明仓库的源,这里可以看到是指明的jcenter(), 之前版本则是mavenCentral(), jcenter可以理解成是一个新的中央远程仓库,兼容maven中心仓库,而且性能更优
- Error:Gradle DSL method not found: ‘runProguard()’