Android Studio 入门
本文适用于从Eclipse转AndroidStudio的开发者
最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少走弯路,这是本系列的第一篇文章,345大神写的。
一. 下载安装
JDK安装并配置JAVA_HOME环境变量
这个就略过了,纯小白请自行百度
Android Studio安装
截止到2016年4月9日Android studio的最新稳定版本为2.0,推荐使用该稳定版本。
下载地址:
下载地址1 官网下载页面传送门
如果下载速度很慢,请复制下载连接到迅雷,万能的迅雷会帮你提速的。
如果根本打不开请移步地址2
下载地址2 AndroidDevTools
你需要的这里基本都会有,强烈推荐到这里下载。
如果本地已经下载有sdk的话推荐下载zip免安装版,第一次启动的时候配置下sdk目录就好。
二. 第一次启动
- 安装完过后不要着急启动,首次启动会弹出检查sdk更新组件等设置,点击finish可能会去下载,如果没有设置代理的情况下,这个界面会卡很久。
解决方法
- 关闭android sutdio,打开android studio安装目录下的bin文件夹,找到idea.properties并打开。
- 在该文件尾部添加如下代码:
# 禁用首次检查sdk功能
disable.android.first.run=true
重启android studio就不会再出现sdk设置检查界面了。
- 启动完成会看到下面的界面
- 启动完成会看到下面的界面
点击Configure选择SDK Manger可以配置SDK目录等属性
点击左下角连接 启动SDK Manger 配置SDK更新镜像
我想说这一步在天朝是必须的,原因我想你懂的
下面说一下SDK更新镜像网站的使用方法:
具体请参考AndroidDevTools
1. 启动 Android SDK Manager ,打开主界面,依次选择『Tools』、『Options…』,弹出『Android SDK Manager - Settings』窗口;
在『Android SDK Manager - Settings』窗口中,在『HTTP Proxy Server』和『HTTP Proxy Port』输入框内填入上面镜像服务器地址(不包含http://,如下图)和端口,并且选中『Force https://… sources to be fetched using http://…』复选框。设置完成后单击『Close』按钮关闭『Android SDK Manager - Settings』窗口返回到主界面;
依次选择『Packages』、『Reload』。
选择镜像网站的时候要注意的是,并不是所有的适合别人的就适合你还有可能根本无法更新,由于服务器远近带宽的问题,你应该选择适合自己的镜像,怎么选择。。。。我想说设置成功后选择更新个没下载的文件能成功下载更新并且速度不慢的就是合适的
主题设置
这个没什么好讲的,但是追求逼格喜欢黑色主题的小伙伴在意这个的不少,这里就上图说明一下。
启动页面点击 configure->选择Prefrences->Appearance->Theme->Darcula就是那个黑色Visual Studio风格主题 ->apply完事
如果想要更多字体关键词颜色什么的个性化配置的话推荐到下面的网址下载
http://color-themes.com/?view=index
选择喜欢的主题下载,下载到的是个jar文件,使用方法:
在AS中选择File->import settings ->选择下载的jar文件->勾选editor color 确认
三. 项目工程
- 新建工程
跟着引导一步步来就好了,注意最低兼容版本的选择,新建项目的时候没有提供编译版本的选项,默认当前安装的sdk的最高版本,AS给提供了几个Activity模版,模版的实现都是比较经典的,推荐新建一个看一看。
- 工程目录结构
新建完一个工程 如图点击左上结构视图切换,切换到Project目录结构(开发中常用的是Android视图,比较简洁) 其中 app2和mylibrary是为了方便后面讲解新建完成后手动添加的module默认新建工程是没有的。
MyApplication文件夹地位相当Eclipse的Workspace
不同的是AS工程目录下面多了用于全局项目的配置文件,比较重要的是local.properties、setting.gradle、gradle.properties 、build.gradle和gradle文件夹
- local.properties
其中可以设置你的 sdk、ndk配置,一般情况下不需要改 - settings.gradle
该文件中就仅仅只包含了一句话,声明所包含的module
比如上面的工程包含三个module
include ':app', ':app2', ':mylibrary' - gradle.properties
gradle编译用到的一些参数设置 一般情况下不需要改 - buiLd.gradle
定义版本仓库的依赖和一些gradle的命令一般情况下不需要改
- local.properties
Module目录
这个目录跟eclipse目录很像 很容易就能理解各种目录的对应关系,比较特别的是比eclipse多了一系列mipmap文件夹,mipmap和drawable文件夹一样都是用来存放图片的,按官方文档说法是 mipmap文件夹只放应用图标。其他需要使用的drawable资源象之前一样放到对应的drawable文件夹。
新建moudle时drawable文件夹只有默认不带分辨率参数的,适用于不同分辨率的文件夹需要自己手动建,AS提供了便捷的创建方式
在moudle上右键选择Android resource directory,分别选择类型drawable 左侧列表选择density 选择对dpi
如下图
其他res文件的创建同理。- 打开网上下载AS工程gradle报错的问题
有时候我们从网上下载了一个demo工程打开后gradle报错不能运行,这种情况大多数由于gradle版本不一致,AS下载对应版本失败的问题引起的,一般情况下有两种解决方法
* 手动下载对应gradle版本到本地目录
这种方式不推荐有兴趣的自行搜索
* 修改要打开工程的gradle配置
参考本地新建工程的相同文件
gradle-wrapper.properties
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
//修改版本号与本地工程文件相同
build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
//修改版本号与本地工程文件相同
}
四. 添加依赖
了解了项目结构之后简单的编译运行调试一般来说应该没有什么问题了,毕竟菜单栏,底部功能窗口功能提示都很明确,下面来说一说比较遇到问题的地方:添加依赖项目或运行第三方工程报错的问题。
添加依赖一般有三种方式
1. 添加代码仓库的依赖
这种方式最简单直接在项目module的build.gradle 里面的dependencies 里添加一句话,然后重新构建即可,如:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.3.0'
compile 'com.android.support:design:23.3.0'
//添加了OKHttp的依赖
compile 'com.squareup.okhttp3:okhttp:3.2.0'
}
可以手动添加也可以右键项目在open module settings里搜索添加(推荐这种方式)
AS会自动联网下载添加的依赖 这个一般不需要翻墙
- jar包的依赖
这个是最简单的也不用联网,和eclipse一样把jar包拷贝到libs文件夹内,然后需要重新构建一下项目 点击菜单栏的构建按钮即可如图
构建完成在左侧目录栏里的jar文件左侧应该会有尖头可以展开查看jar包内容
有的jar还需要关联.so库 这时候只需要在src目录的main文件夹下面建一个名为jniLibs的文件夹将so库拷贝进去即可(与res目录同级)
3. libray项目的依赖
很多时候我们的要用到从github上下载的项目,把其中提供的library添加到我们的项目中,方法如下 首先导入module然后添加依赖
打开project structure -> 添加新moudle ->在下载的工程文件中 选择要导入的library的module
注意不是导入下载的整个工程文件夹 而是选择其中的module文件夹
把导入的library添加到目的项目的依赖中
当导入的library里的项目build.gradle文件里包含一些上传到版本仓库的信息的话导入过后可能会报错,这时候只需要把不必要的信息注释掉即可,需要保留的是编译配置,依赖关系,目录配置。如下
apply plugin: 'com.android.library'
//项目编译信息
android {
compileSdkVersion 23
buildToolsVersion "23.0.2" defaultConfig {
minSdkVersion 11
targetSdkVersion 23
versionCode 1
versionName "1.0"
} }
//依赖信息
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
}
当然也可以手动把module文件夹拷贝到工程目录中然后修改settings.gradle文件,不过不推荐这种方式。
五. 快捷键
AS的自动提示功能很强大,有输入过后会自动弹出提示不需要像Eclipse一样按alt+/才提示,至于其他AS的快捷键很多就不一一说明了, 上个图拿去自行修炼吧
六. 插件安装
打开Setting页面 找到Plugins 搜索安装 如图
推荐的几个AS插件,具体用法请自行百度
1. GsonFormat
2. android-butterknife-zelezny
3. JsonOnlineViewer
七. 打多渠道包
国内上线APP一般要从多渠道发布,为了统计渠道安装量一般需要每个渠道生产一个安装包,AS自带多渠道打包功能,多渠道打包功能绝对是AS最实用的功能之一,这里重点讲一下。
- 生成签名文件
签名文件可以在build->generate signed apk -> 选择项目 next ->create new生成,方式与eclipse差不多
- 设置打包用的签名文件
打开module setting 新建一个signing项 选择签名文件 填写签名文件的密码别名等
- 新建Flavors配置
作为示例我新建了三个配置并选择打包用到的签名配置 一个offline_debug、一个release_360、一个release_baidu
- 修改module的build.gradle和Mainfest文件
按照上一步配置好之后,build.gradle里会多出productFlavors和singConfig配置,我们要修改的是productFlavors部分。
如何修改我们来举例说明
这是build.gradle文件内修改的部分
defaultConfig {
applicationId "com.example.mark.myapplication"
minSdkVersion 14
targetSdkVersion 23
versionCode 1
versionName "1.0"
//BuildConfig.IS_SIGN = false
buildConfigField "boolean", "IS_SIGN", "false"
}
productFlavors {
offline_debug {
signingConfig signingConfigs.signConfig
//这里演示的是一个变量的写法
manifestPlaceholders = [APP_NAME: "Debug版本"]
}
release_360 {
signingConfig signingConfigs.signConfig //BuildConfig.IS_SIGN = true
buildConfigField "boolean", "IS_SIGN", "true"
//这里演示的是有多个变量的写法
manifestPlaceholders = [APP_NAME: "360版本", EXAMPLE: "360"]
}
release_baidu {
signingConfig signingConfigs.signConfig
buildConfigField "boolean", "IS_SIGN", "true"
manifestPlaceholders = [APP_NAME: "百度版本", EXAMPLE: "baidu"]
}
}
其中defaultConfig内的 buildConfigField “boolean”, “IS_SIGN”, “false”一句 是在构建项目生成的BuildConfig类中添加一个名为 IS_SIGN 的bool变量,并赋值为false。
这个变量是可以在代码里使用的,如下面的代码可以用来切换线上线下的请求地址
public static String BASE_URL;
static {
if(BuildConfig.IS_SIGN){
BASE_URL = "线上地址";
}else{
BASE_URL = "线下地址";
}
}
productFlavors 内的manifestPlaceholders = [APP_NAME: “Debug版本”] 一句的含义是 将AndroidManifest.xml文件里的变量APP_NAME替换为冒号后面的字符串,这句是只有一个要替换的变量的写法,后面you多个变量的写法举例。这个APP_NAME在Manifest文件中的定义格式如下 ${变量名} 在打包的时候gradle会自动把这个占位变量给替换掉。
<activity
android:name=".LoginActivity"
android:label="${APP_NAME}">
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这种变量定义可以出现在Mainfest中任何需要字符串的位置,我上面只是一个示例,请活学活用不要照搬照抄。
- 打包
同时选中你要打包的配置项 点击finish 等一会就会同时生成多个APK。
推荐下自己创建的android QQ群: 202928390欢迎大家的加入.
如果你想第一时间看我们的后期文章,扫码关注公众号,每个周末都会推送Android开发实战教程一篇,其余时间我们会推出一些互联网行业新闻,你还等什么,赶快关注吧,既能学到技术,还能长逼格,出任ceo,赢取白富美。。。。。
Android Studio 入门的更多相关文章
- Android Studio 入门 Hello World
Android Studio 入门 Hello World Gavin要加油 1.5k 6月22日 发布 推荐 1 推荐 收藏 17 收藏,2.1k 浏览 引言 前两天开始学习android开发,本来 ...
- Android Studio入门到精通
链接地址:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–>零基础入门 ...
- Android Studio入门指南 (历上最全,全球首发)
下载地址:http://pan.baidu.com/s/1CEMma 8月份的时候因为Android开发团队全部使用Android Studio进行开发,所以我整理了Android Studio的一些 ...
- Android Studio入门(安装-->开发调试)
写在前面的话:本文来源:http://blog.csdn.net/yanbober/article/details/45306483 目标:Android Studio新手–>下载安装配置–&g ...
- android studio入门
目前的工作是蓝牙相关的,所以最近心血来潮想折腾下Android开发,方便调试自己的固件, 装好Android Studio跟SDK之后,感谢nordic的公开代码,研究了一会,感觉并没有多费劲 相关的 ...
- Android Studio 入门指南
转载: 原文链接:http://www.codeceo.com/article/android-studio-guide.html 写在前面 作为一个Android 开发者,你应该很了解Android ...
- Android Studio 入门(转)
本文适用于从Eclipse转AndroidStudio的开发者 最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少 ...
- Android Studio入门问题汇总
1.如何设置 AS 中的字体大小 2.如何切换 AS 的皮肤颜色,默认为黑色,修改为白色,改为 default 3.首次安装 Android Studio并打开时,如果创建了一个新工程并将工程保存在另 ...
- 一、Android Studio入门——Eclipse快捷键配置
[Studio总体介绍] 第一个是运行. 第二个是Debug. 是Studio的设置界面. 工程的配置. Sync,更改配置.导入JAR包,都会去Sync一次. SDK Manager. ...
随机推荐
- 【探索】机器指令翻译成 JavaScript
前言 前些时候研究脚本混淆时,打算先学一些「程序流程」相关的概念.为了不因太枯燥而放弃,决定想一个有趣的案例,可以边探索边学. 于是想了一个话题:尝试将机器指令 1:1 翻译 成 JavaScript ...
- PHP数据类型之间的强制转换
1.实型数据强制转换为整型数据 $float1=2.7; $int1=(int)$float1; echo var_dump($int1),"<br>"; 输出: in ...
- .Net Core MVC 网站开发(Ninesky) 2.2、栏目管理功能-System区域添加
在asp或asp.net中为了方便网站的结构清晰,通常把具有类似功能的页面放到一个文件夹中,用户管理功能都放在Admin文件夹下,用户功能都放在Member文件夹下,在MVC中,通常使用区域(Area ...
- mysql 7下载安装及问题解决
mysql 7安装及问题解决 一.mysql下载 下载地址:https://www.mysql.com/downloads/ Community (GPL) Downloads MySQL Commu ...
- CRL快速开发框架系列教程十(导出对象结构)
本系列目录 CRL快速开发框架系列教程一(Code First数据表不需再关心) CRL快速开发框架系列教程二(基于Lambda表达式查询) CRL快速开发框架系列教程三(更新数据) CRL快速开发框 ...
- JQuery实现表格的增加行和删除行
利用JQuery实现datatables插件的增加和删除行操作 在学习过程中遇到了这个利用JQuery对表格行的增加和删除,特记录下来以供初学者参考. 下面是主要的代码: <meta http- ...
- 【干货分享】流程DEMO-采购预算编制
流程名: 采购预算编制 业务描述: 在月初由计财部进行预算编辑,提交审批后预算生效 流程相关文件: 流程包.xml WebService业务服务.xml WebService.asmx WebSe ...
- unity3d导出到IOS程序下 集成unity3dAR功能
转载自: 来自AR学院(www.arvrschool.com),原文地址为:http://www.arvrschool.com/index.php?c=post&a=modify&ti ...
- Quartz2D总结
天了噜,脑子完全懵了,最起码说出来个上下文啊,连这个都给忘了,特此总结一下,并以此缅怀这次面试 Quartz2D的API来自于Core Graphics(这就是为什么CGContextRef是以CG开 ...
- 如何让我们的PHP在Jexus中跑起来
最近一段时间,经常看到不少的朋友在问,应该怎么设置才能够让Jexus支持PHP.其实,Jexus在很早之前就已经是可以支持PHP,像Apache或Nginx一样充当PHP的Web服务器的.不过由于没有 ...