第二章 Hello,world!

本文同时发表至简书,不为什么,用他的MarkDown在线编辑爽得要哭。

注意:本章节所使用的开发工具为Eclipse

以Android编程权威指南作为学习书物

第一节 创建第一个Android程序

在创建第一个Android程序前,我们要了解这个项目要做哪些东西,处理了哪些业务。以书中项目为例,这个项目是做一个问答的功能。一个问题下有问,有正确错误的选项进行筛选。同时可以选择下一题。这是最基本的需求。

了解需求后,就可以进一步进行需求分解:

  1. 问题是如何产生,是以写死在页面上的还是做成后台可管理配置的
  2. 问答时如何进行进行正确错误的验证
  3. 每个问题都是一个新的页面组成的吗,由问题1引申而出
  4. 此功能是否要支持横竖屏的操作

分解完需求后,大致在心中有一定的印象,大体要做哪些东西。异常该如何处理。接下来是创建项目的正文。首先开启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的相关文章,有空可以进行查阅。

  1. Android调试之Logcat
  2. Android命令行工具logcat详细用法
  3. Android日志系统Logcat源代码简要分析

在第一次执行虚拟AVD时,会卡住一段时间。在这段时间内写了上面的引申内容。废话不多说,直接上图看执行的结果:

是不是有点感觉摸到入门的气息?是的。这就是你的第一个Android应用。但用虚拟的AVD实在太慢。而且开一个Eclipse后,再开浏览器查文档,最后运行下虚拟AVD,4G内存有些吃不消。接下来有个好的解决方案:物理机调试,也叫真机调试。

2.2 使用物理机运行应用

想要进行真机调试有如下几个步骤

  1. 确保要调试的安卓手机版本高于或等于项目选择的版本
  2. 通过数据线将安卓手机连接到电脑/笔记本上
  3. 将安卓手机设置为开发者模式,USB调试
  4. 电脑/笔记本安装好手机的驱动

通过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

小结

以上就是今天全部的学习内部。总结如下:

  1. 如何通过Eclipse创建Android项目
  2. 如何运行Android应用

    课后:请有时间的读者自行去创建个Android,并用模拟AVD与物理手机分别执行一次。

    在最后可能有小伙伴会问,刚开始的时候有对项目的需求进行分析,为什么不在此章节完成?莫担心,在下个章节将对这节分析好的需求进行代码实现。

您还可以查看 第一章:环境的安装与配置

 以上链接若有侵权请联系zhengguinan@hotmail.com。本人承诺除将在收到邮件24小时内删除。请见谅。

安卓入门学习之Hello,world!的更多相关文章

  1. VBox&vmware虚拟机安装Linux及Linux基础入门学习

    VBox&vmware虚拟机安装Linux及Linux基础入门学习 通过VMware workstation安装Linux 在安装虚拟机之前,我特意上网搜索了一下目前常使用的虚拟机软件,了解了 ...

  2. Android M中 JNI的入门学习

    今年谷歌推出了Android 6.0,作为安卓开发人员,对其学习掌握肯定是必不可少的,今天小编和大家分享的就是Android 6.0中的 JNI相关知识,这是在一个安卓教程网上看到的内容,感觉很不错, ...

  3. Android Camera2 拍照入门学习

    原文:Android Camera2 拍照入门学习 学习资料: 肾虚将军android camera2 详解说明 极客学院android.hardware.camera2 使用指南 Android 5 ...

  4. vue入门学习(基础篇)

    vue入门学习总结: vue的一个组件包括三部分:template.style.script. vue的数据在data中定义使用. 数据渲染指令:v-text.v-html.{{}}. 隐藏未编译的标 ...

  5. Hadoop入门学习笔记---part4

    紧接着<Hadoop入门学习笔记---part3>中的继续了解如何用java在程序中操作HDFS. 众所周知,对文件的操作无非是创建,查看,下载,删除.下面我们就开始应用java程序进行操 ...

  6. Hadoop入门学习笔记---part3

    2015年元旦,好好学习,天天向上.良好的开端是成功的一半,任何学习都不能中断,只有坚持才会出结果.继续学习Hadoop.冰冻三尺,非一日之寒! 经过Hadoop的伪分布集群环境的搭建,基本对Hado ...

  7. PyQt4入门学习笔记(三)

    # PyQt4入门学习笔记(三) PyQt4内的布局 布局方式是我们控制我们的GUI页面内各个控件的排放位置的.我们可以通过两种基本方式来控制: 1.绝对位置 2.layout类 绝对位置 这种方式要 ...

  8. PyQt4入门学习笔记(一)

    PyQt4入门学习笔记(一) 一直没有找到什么好的pyqt4的教程,偶然在google上搜到一篇不错的入门文档,翻译过来,留以后再复习. 原始链接如下: http://zetcode.com/gui/ ...

  9. Hadoop入门学习笔记---part2

    在<Hadoop入门学习笔记---part1>中感觉自己虽然总结的比较详细,但是始终感觉有点凌乱.不够系统化,不够简洁.经过自己的推敲和总结,现在在此处概括性的总结一下,认为在准备搭建ha ...

随机推荐

  1. 转: Nodejs 发送HTTP POST请求实例

    项目里面需要用到使用NodeJs来转发HTTP POST请求,把过程记录一下: exports.sendEmail = function (req, res) { res.send(200, req. ...

  2. Win7下使用protel99se、protel99

    很多网友需要用的protel99se,由于该软件开发的时间比较就早,在现在笔记本普及,尤其是win7普及的情况下,用该软件着实让许多人头痛,有人选择安装XP系统,但这就牺牲了win7良好的操作体验.也 ...

  3. 半模对话框 QProgressDialog

    http://doc.qt.io/qt-4.8/qprogressdialog.html progressdialog 用到了qfuture http://blog.csdn.net/liang198 ...

  4. UIKit封装的系统动画

    简介 在UIKit中,对UIView封装了很多类方法来进行简单的动画实现,在动画过程中,通过对属性值的修改来完成一系列的效果. 在IOS4以前,主要通过 + beginAnimation + setA ...

  5. 七日筑基——C#第二天

    上一次讲到了变量,变量这个东西可以说是编程的基础,主要的作用就是用来存放数据,就跟做菜一样的,不同的菜要放在不同类型的容器中,那么不同的数据也需要存放在不同类型的变量里.先放张饭菜的图给大家看看,增加 ...

  6. web前端的发展态势

     以前 作为一个java程序员写的代码主要还是后台的代码,虽然开始的时候前后端都写,但是也是用别人造好的轮子来用,学学html,css,js,jquery,再找一个前端ui框架学学,上手之后我们就可以 ...

  7. js中if的简写方法

    http://transitions1020.com/# 太帅! <script type="text/javascript"> 如果你想写 if (!false) { ...

  8. c/c++ double的数字 转成字符串后 可以有效的避免精度要求不高的数

    char n[100]; sprintf(n,"%lf",db);

  9. ajax联动

    1.编写html代码,引入ajax文件 <script type="text/javascript" src="js/ajax.js"></s ...

  10. c++ primer plus 习题答案(3)

    p296.3 #include<iostream> #include<cstdlib> #include<string> #include<cstring&g ...