前言
在团队里主要负责后端的代码实现,大概就是点击按钮能实现一定的功能这样,但本文只是写写入门 Android Studio 过程中一些想记录的东西,感觉算不上技术博客,主要就是 AS (本文中 AS 就是指 Android Studio)版的 HelloWorld 的实现及一些碰到的问题。
学习的资源当初找了挺多,第一行代码、ANDROID学习之路、Android基础入门教程、Android官方培训课程中文版这些感觉都不错。同一个知识点我比较喜欢多找几个不同的教程或是资源来看,其中重复的部分自然就比较重要,自己记得也比较牢,而且也能看出教程的好坏。听说 AS 安装就挺玄学,当初还是很小心谨慎的,几个教程安装部分换着看,心里有点谱了才上手,不过后来的 HelloWorld 还是我称为”史上最难“,捣鼓了好几天。
正文开始前的最后,想说还是第一行代码对新手最友好,上手很快,团队中需要用到的功能基本上都能找到,正文的 HelloWorld 主要就是基于书上的例子来的,不过当然也有参考上述其它的资源。
搭建开发环境
Android 程序都是用 Java 语言写的,你需要安装 JDK (Java 语言的软件开发工程包),然后是安卓的软件开发工具包 Android SDK,最后自然是 Android Studio。这些东西谷歌都帮我们集成好了,到官网下载就好,可能需要科学上网才能下载。下载及安装的配置,我照着第一行代码做下来,倒是挺顺利的,好像因为其它教程还去环境变量里配置了 JDK 和 SDK,不用命令行感觉也没关系吧其实。
新建第一个项目 HelloWorld
安装配置好,第一次打开 AS,自然选择 "start a new Android Studio project",照着教程稍微改下名字什么的
有的教程说点完 "Finish" ,会有很多人卡在上图显示正在创建的进度条,因为第一次还需要联网下载 Gradle,叫我们耐心等待。确认有科学上网,在那边挂了一晚上,恁是没创建好,第一个问题出现啦。
碰到过相同问题的小伙伴热心地发来了链接:AS-->创建项目(慢)和打开项目(慢)等需要注意的问题,大概意思就是自动下载 Gradle 需要很厉害的网络,不然就会卡得无法动弹,明明科学上网成功地从安卓官网下载好了 AS,然后解决的方法就是手动下载,真是无奈。去 http://services.gradle.org/distributions 下载需要的版本压缩包到 C:UsersAdministrator.gradlewrapperdists 下相应版本 Gradle 文件夹里面的一个随机文件里,然后重新创建就会很快啦。后来有次 AS 提示可以更新时,也碰到了这个问题,报错说 "Gradle sync failed: Cause: services.gradle.org ",一样可以这么解决,把需要的压缩包放到如下目录
然后终于成功创建了 HelloWorld 项目
运行
运行安卓程序很简单,只要点击菜单栏上的绿色三角按钮就行。AS 默认会把程序安装到模拟器上运行,创建模拟器下面再细讲,真的是一言难尽。你也可以点击绿色三角按钮旁的 app 下拉菜单并选择 Edit Configurations,选择 USB 设备就可以在真机上运行。
创建模拟器
有教程建议在创建模拟器前把 SDK Manager 中的 Tools、Extras 都更新到最新,后来发现有的只是下载了安装包,还需要你到文件目录下手动安装
全部更新之后,用 AVD 开始创建新的模拟器,基本上就是默认的选项
第一行代码上的例子用的是写书当时最新的 Android 7.0,于是我用写 HelloWorld 那时最新的 Android 8.0,然后就出了一堆的幺蛾子。。。
第一次 AS 在下面图的右边会提示你安装 HAXM,是 intel 的硬件加速执行管理器,大概就是会让模拟器运行速度变快的东西,由 Intel(R) Virtualization Technology (VT) 支持,VT 没开的话得用 bios 来打开。其实上面更新 SDK 的时候已经选中了安装最新的 HAXM,没错,这就是需要你再手动安装的东西,当然这是后面模拟器打不开疯狂搜索才知道的。你第一次在 AVD 的界面点安装 HAXM,还会飞出一个占用内存的设置,我没多想,直接用默认的 512 MB,后面就被它坑了。
再打开 AVD 就会看到刚刚新建的模拟器,你以为成功了嘛,点击绿色运行按钮,马上就报错说 "The connection to adb is down, and a severe error has occured"。查了下,说是模拟器的启动程序 adb 的端口被占用,参考Android模拟器端口被占用问题的解决办法,发现被 360手机助手占用,我什么时候下载过这鬼东西。卸载,再次点击运行按钮,没有报错,飞出个手机弹窗,进入开机界面,然后还是开机界面,还是开机界面,一直都在开机,一直就是打不开。。。
一波搜索,怀疑是 HAXM 没有装好。试了下再创建新的模拟器,还是会提示你安装 HAXM,所以 AVD 里面也并没有帮你安装好啊。你要到 HAXM 的目录下,手动安装
终于装好了 HAXM,创建模拟器的时候不会再叫你安装 HAXM,于是点击运行,依旧卡在开机界面进不去。那我就不要 8.0,太高端我的电脑带不动嘛,创建 7.0 的模拟器,成功开机,但是居然有开机密码。。。网上说把中文用户名改成英文就可以,试了下并没有用。后来听小伙伴说也有碰到这个问题,说是不能下载有 Google 开头的 imag,就上面有奥利奥超人的那副截图,你不要下载推荐的那些,自己去 x86 image 里找后面不带 Google play 的。我当时是又找了一会儿,决定放弃 AS 的模拟器,迂回地试试其它教程里看到的 Genymotion 模拟器。
Genymotion 模拟器要注册才能下载,下载界面也是不好找,还要下载 VirtualBox 来提供支持,然后 AS 还要安装插件,看我上面截图里菜单栏最右边粉红色的那个就是。按照网上教程下载安装好,创建模拟器,先在 AS 外运行试试,果断报错说 VirtualBox 打不开模拟器。查找了一点资料,可能是因为 Genymotion 官网附带的 VirtualBox 的版本不对,我卸了装最新的,依然不行。网上又说 VirtualBox 版本低点才行,就又卸了安装了几次其它版本,还是不行。看来也并不简单啊,没办法迂回,当初没截图,现在也没法讲太细。
收拾下心情,重装上阵,决定继续啃 AS 的模拟器。在Android studio 模拟器卡在开机界面请问怎么办中看到了新的可能,因为虚拟设备占用的内存超过 HAXM 安装时的设置值了,所以才打不开。看了下 Android 8.0 的模拟器占用 1536 MB,当初 HAXM 默认只有 512 MB ,那大概就是这个问题了吧。修改 HAXM 的配置值只能重装,又回到原来手动安装的目录下
为什么我的 change 按钮是灰的不能按啊,真是绝望。心一狠,卸载重装 AS,第一次创建的时候弹出 HAXM 的配置时设大点。然后终于可以打开模拟器啦,运行 HelloWorld
哈哈哈哈哈,终于跑出来了。