Android开发从零开始(1)--2016.01.18

来源:互联网 发布:单片机烟雾报警器 编辑:程序博客网 时间:2024/05/21 10:02

Android开发从零开始

原来在大学的时候学习过安卓开发,记得当时是跟着传智播客黑马java班看完了整个android开发的部分,写了一两个小程序,后来还做了本科的毕业设计,用的就是android,不过那时候的4.0才刚刚出来,全国广大android手机还跑在2.2与2.3的版本上,一眨眼android 6.0已经发布好几个月了,感觉可以还是学习一下android开发,以备不时需。

准备重新开始学习,从头开始,发现阅读官网的http://developer.android.com/training/index.html还是蛮不错的入门方法,注意需要翻墙。

在根据官方文档进行第一步创建android项目时,就出现了如下错误:
项目创建完成后,编译器报如下错误

<style name="Base.TextAppearance.AppCompat.Widget.Button.Inverse" parent="android:TextAppearance.Material.Widget.Button.Inverse"/><style name="Base.Widget.AppCompat.Button.Colored" parent="android:Widget.Material.Button.Colored"/>

好久没有接触android,而且原来的开发环境也是eclipse + adt,也是第一次接触Android studio。在经过一番百度与google之后,尝试了一些很不靠谱的方法后。据说是1.3.1版本的bug,不过mac端1.3.2版本也有这个问题。索性重新安装sdk,发现是sdk中又很多没有下载,重新下载全部sdk后问题消失。

根据官网的步骤,创建了一个新的project,然后运行它。

需要创建一个虚拟机,虚拟机有两种,arm和x86的

这里写图片描述

传统的虚拟机都是基于ARM构架的,X86的都是基于INtel的
在创建的虚拟机中arm虚拟机,比较慢,运行和加载都比较缓慢
Android studio会自动提示,若创建一个基于X86的虚拟机,会提高10倍性能。

但是在mac下创建X86虚拟机报错如下:
emulator: ERROR: x86 emulation currently requires hardware acceleration! Please ensure Intel HAXM is properly installed and usable. CPU acceleration status: HAXM must be updated (version 1.1.5 < 6.0.1).

开始以为是SDK中的HAXM没有下载,打开sdk manager发现,HAXM已经下载了,但是启动虚拟机的时候还是会报错。
在stack overflow中找到方法,前往你SDK的安装路径,找到extras\intel文件夹,运行对应的HAXM dmg文件,安装intel的HAXM
我的版本你是6.0.1
这里写图片描述

根据安装提示,一步一步安装即可,在intel HAXM安装完毕后,再次启动X86的虚拟机,正常启动,启动和相应速度确实完爆arm,原来开发的时候用的genymotion,但是现在好像收费了,暂时不能再使用了,先使用这个虚拟机。

在项目部署在X86虚拟上后,报如下错误
[2012-06-17 00:03:26 - ddmlib] Broken pipe
java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:122)
at sun.nio.ch.IOUtil.write(IOUtil.java:93)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:352)
at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
at com.android.ddmlib.Client.sendAndConsume(Client.java:575)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:421)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:837)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:805)
at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:765)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
at com.android.ddmlib.DeviceMonitor.access100(DeviceMonitor.java:44)atcom.android.ddmlib.DeviceMonitor3.run(DeviceMonitor.java:580)

如果有人使用eclipse和android工作室在一起,然后由eclipse会抛出这个错误。 所以即使你选择设备通过摘要,它会抛出这个错误。

嗯,入门第一课结束了。

0 0
原创粉丝点击