安卓入门学习之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 ...
随机推荐
- php数组使用技巧及操作总结
数组,可以说是PHP的数据应用中较重要的一种方式.PHP的数组函数众多,下面是一些小结,借此记之,便于以后鉴之. 1. 数组定义 数组的定义使用 array()方式定义,可以定义空数组:<?ph ...
- JS行合并处理方法
//行合并 function _w_table_rowspan(col){ _w_table_firsttd = ""; _w_table_currenttd = "&q ...
- Spring jdbctemplate学习笔记
/*List<?> config = getDB(" select t.datavalue from sys_config t where t.configid = '15' & ...
- Windows 系统消息范围和前缀,以及消息大全
Windows系统定义的消息类别消息标识符前缀 消息分类ABM 应用桌面工具栏消息BM 按钮控件消息CB 组合框控件消息CBEM 扩展组合框控件消息CDM 通用对话框消息DBT 设备消息DL 拖曳列表 ...
- 工作学习笔记——GDI泄露检测利器
用.Net写的地图编辑器,最近在一个长时间使用的策划手里频繁挂掉.定位到原因应该是GDI泄露.但在几千行代码里手工寻找泄漏点实在是有些困难,直到在网上找到了这个检测GDI泄露的工具GDILeaks.它 ...
- 【c语言】推断一个数是不是2的n次方
// 推断一个数是不是2的n次方 #include <stdio.h> void judge_n(int a) { int b = a - 1; if ((a & b) == 0) ...
- HDU 1976 prime path
题意:给你2个数n m.从n变成m最少须要改变多少次. 当中: 1.n m 都是4位数 2.每次仅仅能改变n的一个位数(个位.十位.百位.千位),且每次改变后后的新数为素数 思路:搜索的变形题,这 ...
- TCP/IP笔记 四.应用层(2)——FTP
1. FTP(File Transfer Protocol) 文件传送协议 FTP 只提供文件传送的一些基本的服务,它使用 TCP 可靠的运输服务. FTP 的主要功能是减少或消除在不同操作系统下处理 ...
- STL中主要的算法(一)
一.replace() 替换算法将指定元素值替换为新值,使用原型例如以下,将迭代器[first,last)中值为old_value的元素所有替换为new_value值. 函数原型: template ...
- 汉诺塔 python版
汉诺塔问题:如果将n个盘子(由小到大)从a通过b,搬到c,搬运过程中不能出现小盘子在大盘子下面的情况. 思路分析:假设前要移动第100个盘子,分两步走,移动第99个:再移动第100个:而要移动第99个 ...