第二章 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. python pdb调试以及sublime3快捷键设置

    python pdb调试以及sublime3快捷键设置 pdb调试 如果对gdb比较熟悉的话,pdb就很容易上手.以一个demo快速了解常用的调试命令. def test(a): while True ...

  2. [C#]中英文字幕合并的小程序

    今天班里小组合作录了一个视频,我给它做了字幕的时间轴.为了让这个视频假装很高端的样子,我想再加上英文的字幕.中文的纯字幕文本先搞成一句一行,然后放到Google翻译上,复制英文保存在Eng.txt. ...

  3. SQL Server Mysql primary key可更新性分析

    SQL Server: 一般来说SQL Server 中表的主键是支持更新操作的.但是如果这个主键是由identity(1,1)这类的方式生成的话它是不可更新的. Mysql : Mysql 中表的主 ...

  4. phome_enewsclass 数据表字段解释(栏目主表)

    字段名 类型 解释 附加说明 classid smallint(6) 栏目ID   bclassid smallint(6) 父栏目ID   classname varchar(50) 栏目名称   ...

  5. 也许有用(也谈VC中ModifyStyle&ModifyStyleEx无法改变控件的Style)

     一个View中用到了一个CListCtrl,在OnInitialUpdate函数里面他调用了m_listCtrl.ModifyStyleEx(0, LVS_EX_FULLROWSELECT);但是结 ...

  6. fastDFS同步问题讨论

    一.文件同步延迟问题 前面也讲过fastDFS同组内storage server数据是同步的, Storage server中由专门的线程根据binlog进行文件同步.为了最大程度地避免相互影响以及出 ...

  7. Oracle 生成指定范围内随机日期

    Oracle生成一个指定范围内的随机日期 /* 年1月1日)的整数偏移量来保存(即把日期保存为一个数字); * 因此可通过寻找‘指定日期’与‘关键日期’相对应的整数偏移量,再加一个指定范围内的随机整数 ...

  8. Asp.net 提供程序模型

    需要说明一下几点 1.什么是提供程序? 2.ASP.NET 4.5 中的提供程序 3.配置提供程序 有一下几种存储状态的方式 1.应用程序状态 2.会话状态 3.高速缓存状态 4.cookie 5.查 ...

  9. ubuntu 中 ThinkPHP 上传文件无法得到文件名

    在 419-424 行.

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

    p221.8 #include<iostream> #include<cstdlib> #include<cstring> using namespace std; ...