您的位置:首页 > 移动开发 > Android开发

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

2016-01-18 23:20 591 查看

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会抛出这个错误。 所以即使你选择设备通过摘要,它会抛出这个错误。

嗯,入门第一课结束了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android java android开发