最近打算写一个系列的android初级开发教程,预计40篇以上的文章,结合我实际工作中的经验,写一些工作中经常用到的技术,让初学者可以少走弯路,这是本系列的第一篇文章,345大神写的。
一. 下载安装
- JDK安装并配置JAVA_HOME环境变量
- Android Studio安装
下载地址:
- 下载地址1 官网下载页面传送门
- 下载地址2 AndroidDevTools
- 你需要的这里基本都会有,强烈推荐到这里下载。
如果本地已经下载有sdk的话推荐下载zip免安装版,第一次启动的时候配置下sdk目录就好。
二. 第一次启动
- 安装完过后不要着急启动,首次启动会弹出检查sdk更新组件等设置,点击finish可能会去下载,如果没有设置代理的情况下,这个界面会卡很久。
解决方法
- 关闭android sutdio,打开android studio安装目录下的bin文件夹,找到idea.properties并打开。
- 在该文件尾部添加如下代码:
- 重启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文件,使用方法:
三. 项目工程
- 新建工程
跟着引导一步步来就好了,注意最低兼容版本的选择,新建项目的时候没有提供编译版本的选项,默认当前安装的sdk的最高版本,AS给提供了几个Activity模版,模版的实现都是比较经典的,推荐新建一个看一看。
- 工程目录结构
新建完一个工程 如图点击左上结构视图切换,切换到Project目录结构(开发中常用的是Android视图,比较简洁) 其中 app2和mylibrary是为了方便后面讲解新建完成后手动添加的module默认新建工程是没有的。
- MyApplication文件夹地位相当Eclipse的Workspace
- local.properties
其中可以设置你的 sdk、ndk配置,一般情况下不需要改 - settings.gradle
该文件中就仅仅只包含了一句话,声明所包含的module
比如上面的工程包含三个module
include ':app', ':app2', ':mylibrary'
- gradle.properties
gradle编译用到的一些参数设置 一般情况下不需要改 - buiLd.gradle
定义版本仓库的依赖和一些gradle的命令一般情况下不需要改
- 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
build.gradle
四. 添加依赖
了解了项目结构之后简单的编译运行调试一般来说应该没有什么问题了,毕竟菜单栏,底部功能窗口功能提示都很明确,下面来说一说比较遇到问题的地方:添加依赖项目或运行第三方工程报错的问题。
添加依赖一般有三种方式
1. 添加代码仓库的依赖
这种方式最简单直接在项目module的build.gradle 里面的dependencies 里添加一句话,然后重新构建即可,如:
可以手动添加也可以右键项目在open module settings里搜索添加(推荐这种方式)
- 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添加到目的项目的依赖中
当然也可以手动把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文件内修改的部分
这个变量是可以在代码里使用的,如下面的代码可以用来切换线上线下的请求地址
productFlavors 内的manifestPlaceholders = [APP_NAME: “Debug版本”] 一句的含义是 将AndroidManifest.xml文件里的变量APP_NAME替换为冒号后面的字符串,这句是只有一个要替换的变量的写法,后面you多个变量的写法举例。这个APP_NAME在Manifest文件中的定义格式如下 ${变量名} 在打包的时候gradle会自动把这个占位变量给替换掉。
这种变量定义可以出现在Mainfest中任何需要字符串的位置,我上面只是一个示例,请活学活用不要照搬照抄。
- 打包
同时选中你要打包的配置项 点击finish 等一会就会同时生成多个APK。
如果你想第一时间看我们的后期文章,扫码关注公众号,每个周末都会推送Android开发实战教程一篇,其余时间我们会推出一些互联网行业新闻,你还等什么,赶快关注吧,既能学到技术,还能长逼格,出任ceo,赢取白富美。。。。。