安卓入门学习之Hello,world!
第二章 Hello,world!
本文同时发表至简书,不为什么,用他的MarkDown在线编辑爽得要哭。
注意:本章节所使用的开发工具为Eclipse
以Android编程权威指南作为学习书物
第一节 创建第一个Android程序
在创建第一个Android程序前,我们要了解这个项目要做哪些东西,处理了哪些业务。以书中项目为例,这个项目是做一个问答的功能。一个问题下有问,有正确错误的选项进行筛选。同时可以选择下一题。这是最基本的需求。
了解需求后,就可以进一步进行需求分解:
- 问题是如何产生,是以写死在页面上的还是做成后台可管理配置的
- 问答时如何进行进行正确错误的验证
- 每个问题都是一个新的页面组成的吗,由问题1引申而出
- 此功能是否要支持横竖屏的操作
分解完需求后,大致在心中有一定的印象,大体要做哪些东西。异常该如何处理。接下来是创建项目的正文。首先开启Eclipse,检查Eclipse是否正确安装ADT与SDK,如未正确安装,请点击此处进行相应环境的搭配。然后点击File->New->Android Application Project创建第一个Android程序。
注意:
如果在New中没有这种选项,也不要急。可以在`NEW`->`Other`中选择Android项目。
但如果在`Other`中没有这个选项则说明你的环境并没有完全的安装清楚。以移步至 ( http://www.jianshu.com/p/10283431344e) 进行相应的环境安装与配置。
创建新的Android工程具体如下图所示:

输入好相应信息后,直接点Next按钮。在第二个界面中,清除已勾选的创建定制图标(Create custom launcher icon)。主要可以自己添加自己的Logo图标。以后章节将具体描述如何操作。

单击Next,在第三个界面会询问想要创建activity类型。选择Blank Activity

继续单击Next。在应用向导中的最后一个窗口,命名activity子类为QuizActivity,如图2.4所示。注意子类名的Activity后缀。不是强制要求后缀,但为了统一代码规范,建议遵循此类命名规范。

点击完Finish后可看下如下如的工作界面。

到此,第一个项目就搭建完成。
第二节 运行Android应用
到这里,小伙伴们是不是很着急直接按运行查看输出界面如何。
大家都知道在Eclipse中,可以通过Main函数进行控制台输出执行结果,jsp可以通过Tomcat等服务器输出页面。但要如何从Eclipse输出Android呢?
要运行Android应用,需要使用硬件设备或者虚拟设备。虚拟设备是包含在开发工具中。
2.1 使用模拟器运行应用
选择Window->Android Virtual Device Manager菜单项,当AVD管理器弹出时,点击创建新AVD。具体配置如下图:

创建成功后,我们使用此AVD运行创建好的Android项目。点击项目文件夹名,右键弹出菜单,选择Run As->Android Application。此时Eclipse会自动查找新建的虚拟设备,安装应用包(APK全称为: Android *Package*),随后启动并运行应用 。在运行过程中,Eclipse全询问是否使用LogCat自动监控,请选择Yes。
Android开发过程中免不了要进行调试,而Android自带的Logcat是相对来说比较好的调试器。如何进行调试也是一个优秀的程序员必备的技能。
以下是LogCat的相关文章,有空可以进行查阅。
在第一次执行虚拟AVD时,会卡住一段时间。在这段时间内写了上面的引申内容。废话不多说,直接上图看执行的结果:

是不是有点感觉摸到入门的气息?是的。这就是你的第一个Android应用。但用虚拟的AVD实在太慢。而且开一个Eclipse后,再开浏览器查文档,最后运行下虚拟AVD,4G内存有些吃不消。接下来有个好的解决方案:物理机调试,也叫真机调试。
2.2 使用物理机运行应用
想要进行真机调试有如下几个步骤
- 确保要调试的安卓手机版本高于或等于项目选择的版本
- 通过数据线将安卓手机连接到电脑/笔记本上
- 将安卓手机设置为开发者模式,USB调试
- 电脑/笔记本安装好手机的驱动
通过CMD命令进入SDK所在文件夹中,执行adb devices。

最后一条是表示已成功连接上设备。
可能有眼尖的小伙伴发现为啥会有offline,unauthorized。接下来就讲如何处理这些问题。
offline出现的原因很大一部分是驱动安装完成后,没有及时的重启adb服务。
解决的方法也很简单,直接结束adb 进程服务,重启adb服务。
结束adb服务:adb kill-server
重启adb服务:adb start-server
unauthorized出现的问题主要是由于没有开启USB调试,或者手机要求验证允 许本计算机通过USB进行调试。
直接运行Run as->Android Application 就会出现选择物理手机的界面:

选择好手机后,点OK,就会向手机要求执行安装APK操作。
有些机型可能在关闭屏幕的情况下拒绝安装APK,这时要保持手机长亮。
像小米3手机会在安装前提示此APK为非Mi应用商城的APK。要求用户手动点击确认才方可安装。
安装完APK后,就可以看到既亲切又熟悉的 Hello,world

小结
以上就是今天全部的学习内部。总结如下:
- 如何通过Eclipse创建Android项目
- 如何运行Android应用
课后:请有时间的读者自行去创建个Android,并用模拟AVD与物理手机分别执行一次。
在最后可能有小伙伴会问,刚开始的时候有对项目的需求进行分析,为什么不在此章节完成?莫担心,在下个章节将对这节分析好的需求进行代码实现。
您还可以查看 第一章:环境的安装与配置
以上链接若有侵权请联系zhengguinan@hotmail.com。本人承诺除将在收到邮件24小时内删除。请见谅。
安卓入门学习之Hello,world!的更多相关文章
- VBox&vmware虚拟机安装Linux及Linux基础入门学习
VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...
- Android M中 JNI的入门学习
今年谷歌推出了Android 6.0,作为安卓开发人员,对其学习掌握肯定是必不可少的,今天小编和大家分享的就是Android 6.0中的 JNI相关知识,这是在一个安卓教程网上看到的内容,感觉很不错, ...
- Android Camera2 拍照入门学习
原文:Android Camera2 拍照入门学习 学习资料: 肾虚将军android camera2 详解说明 极客学院android.hardware.camera2 使用指南 Android 5 ...
- vue入门学习(基础篇)
vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...
- Hadoop入门学习笔记---part4
紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...
- Hadoop入门学习笔记---part3
2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...
- PyQt4入门学习笔记(三)
# PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...
- PyQt4入门学习笔记(一)
PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...
- Hadoop入门学习笔记---part2
在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...
随机推荐
- SnappyDB—Android上的NoSQL数据库简介
参考:http://www.open-open.com/lib/view/open1420816891937.html 参考:http://android-arsenal.com/details/1/ ...
- Android安装应用失败UID 和 PID
参考:http://blog.sina.com.cn/s/blog_62ef2f140101j6q2.html 安装任意第三方的一个apk,恢复出厂设置,再次安装相同的apk,提示安装失败,通过打印L ...
- css如此强大你知道吗
看个这个大神纯 CSS 绘制<辛普森一家>人物头像我惊呆了,css如此牛x <div id="wrap"> <div class="cont ...
- CSS3 旋转 太阳系
参考https://www.tadywalsh.com/web/cascading-solar-system/ 首先 旋转有两种方式 一种是使用 transform-origin 另一种是tran ...
- QT 下把编辑框内的中文字符转换为 char*
第一种方法 QString str(tr("你好")); wchar_t wc[100] = {0}; pEditShortDes->text().toWCharArray( ...
- VC++或QT下 高精度 多媒体定时器
在VC编程中,用SetTimer可以定义一个定时器,到时间了,就响应OnTimer消息,但这种定时器精度太低了.如果需要精度更高一些的定时器(精 确到1ms),可以使用下面的高精度多媒体定时器进行代码 ...
- java设计模式(二)单例模式 建造者模式
(三)单例模式 单例模式应该是最常见的设计模式,作用是保证在JVM中,该对象仅仅有一个实例存在. 长处:1.降低某些创建比較频繁的或者比較大型的对象的系统开销. 2.省去了new操作符,减少系统内存使 ...
- POJ训练计划1459_Power Network(网络流最大流/Dinic)
解题报告 这题建模实在是好建.,,好贱.., 给前向星给跪了,纯dinic的前向星居然TLE,sad.,,回头看看优化,.. 矩阵跑过了.2A,sad,,, /******************** ...
- POJ 2115 模线性方程 ax=b(mod n)
/* (x*c+a)%(2^k)==b →(x*c)%(2^k)==b-a 满足定理: 推论1:方程ax=b(mod n)对于未知量x有解,当且仅当gcd(a,n) | b. 推论2:方程ax=b(m ...
- JavaScript基础(语法类型转换、运算符、语句)
1.类型转换: 分为自动转换和强制转换,一般用强制转换. 其他类型转换为整数:parseint(): 其他类型转换为小数:parsefloat(): 判断是否是一个合法的数字类型:isNaN(): 是 ...