【Android开发笔记】2.第一个Demo
前言
上一节已经完成了Android开发环境的搭建,在这一节,将会新建一个Demo,以熟悉Eclipse。包括详细的开发步骤、如何使用模拟器、如何连接手机、如何生成安装包等。
声明
本系列文章不是教程,仅为笔记,如有不当之处请指正。
欢迎转载,转载请保留原出处:http://www.cnblogs.com/rayee
正文
新建一个Demo并运行。
一、新建工程
打开Eclipse,File –> New –> Project
选择Android Project
选择Android SDK版本(这将决定程序能运行在哪些版本的设备上。Android程序支持向下兼容,也就是说Android4.0.3的设备能运行基于Android1.6 SDK开发的程序,反过来则不能运行。你可以选择最低的Android1.6以兼容更多的设备,但在程序中不能使用更高版本中的特性,所谓鱼和熊掌不能兼得,根据实际情况选择才是王道。)
选择Android2.2,点击Next
█ 标注1处填写程序名称,即运行程序时显示在顶部的名称。
█ 标注2处填写包的名称,学过JAVA的同学都明白何为“包”,对于还没接触“包”的同学,我就个人的理解说一下:
Package(包),为了防止同名的class产生冲突而把他们分到不同的组,这个组就是“包”,具体表现形式为文件夹,如com.android.demo,在工程的下src下可看到com/android/demo,三个依次包含的文件夹。>>点此查看详细资料
注意:1.包名中不能包含中文字符,2.不能以分隔符“.”结尾,3.不能少于两层。
█ 标注3处为主Activity的名称,自动生成,无需修改。
Activity是Android组件中最基本也是最常用的一种组件。在一个Android应用中,一个Activity表现为一个单独的屏幕(功能类似于wml里面的card)。每一个Activity都被实现为一个独立的类,并且继承于Activity这个基类。>>点此查看详细资料
█ 标注4处,支持的最低版本,即为上一步选择的SDK版本。
点击Finish,可看到工程就新建好了。
二、工程文件介绍
上图为一个工程的目录结构,下面将依次介绍:
█ src文件夹
此文件夹下存放着程序的JAVA程序源码,可以看到已存在包com.android.demo、DemoActivity.java,这是新建工程时自动生成的。以后的编码工作主要在此文件夹下进行。
█ gen文件夹
可看到这个文件夹下存在包com.android.demo,包里面有一个R.java文件,里面保存了用到的资源的相关信息,由IDE自动维护,不需要手动修改。以后用到会详细讲解。
█ Android 2.2
这个为SDK包,如果选择其它的SDK这里会有所不同。
█ assets文件夹
存放资产文件的文件夹。
█ bin文件夹
编译生成的apk程序会存放到此文件夹下。
█ res文件夹
也是资源文件夹,但和assets文件夹有所不同:加入此文件夹的资源会被自动添加到gen下的R.java文件夹中,在程序中可通过R.java访问资源,而assets文件夹下的资源需自行维护。
res文件夹下主要放图片、文字、布局等文件。
█ AndroidManifest.xml文件
此文件为程序的配置文件,包含全局变量、应用组件、应用组件用到的类等信息。此文件相当重要,必不可少!
三、采用模拟器运行程序
接下来我们在模拟器中让程序跑起来看看…
什么?你说我还什么都没写,怎么运行?IDE创建工程的时候不是自动创建了一系列文件吗?是的,这些自动创建的程序不需要修改就已经能运行起来了,简单吧
左侧工程Demo上点右键 –> Run As –> Android Application
等等,出错了…看看是怎么回事(如果没出错,说明你之前配置好了模拟器,或者,你的手机正连接到电脑上?)
看控制台日志,没找到合适的AVD!(AVD即Android Vitual Device,Android虚拟设备,即模拟器)
对了,还没有模拟器,点“Yes”新建一个:
在模拟器管理界面点击标注1,弹出添加界面,如上图所示:
█ 标注2处填写名称,随便填,你自己能理解就行。
█ 标注3处选择Android版本,跟你的程序匹配。
█ 标注4处选择模拟器的外观,主要是屏幕大小,这里我选HVGA。
点击"Create AVD”添加,在模拟器管理界面可以看到已经有2.2版本的模拟器了
在这里补充说一下之前点击“Run As Android Application”后都发生了些什么:
Eclipse自动查找是否有合适的设备(手机或模拟器),如果没找到会提示添加模拟器。如果找到多个符合条件(设备版本等于或高于程序版本)的设备会优先选择在线状态的设备,如果存在多个在线的设备会弹出选择窗口然你手动选择,然后自动将程序安装到选择的设备上并运行。
你可以在工程属性中指定为手动选择,这样每次运行都需要手动选择设备。设置步骤如下图所示:
标注1处点右键 –> Proterties打开工程属性窗口。
标注4处选择手动或自动,若选自动,可在标注4处选择首选设备。
把模拟器管理窗口关掉,再次运行程序(左侧工程Demo上点右键 –> Run As –> Android Application)
等待模拟器启动…(机器配置较差的同学可以先去泡个面)
可以看到,模拟器启动后自动安装程序,并且自动运行了!是否小小的激动了一下?(话说当初第一次用VB编写拖出个窗口生成exe程序并运行起来时,真是兴奋不已,因为之前自己捣鼓html,直接就能看到源码,没什么奇妙的,能弄出个二进制的exe觉得好神奇…)
不熟悉Android的同学可以捣鼓一下这个模拟器,看看Android手机都是什么样子。
在模拟器中退出程序,在程序列表中可以看到程序:
模拟器不用关闭,让它闲着,下次调试还会用到,否则又可以泡面了…
四、连接手机运行程序
经过模拟器运行后再用手机运行就轻车熟路了,Eclipse都帮你搞定了,你等着看结果就是。
把手机用USB线连接到电脑,左侧工程Demo上点右键 –> Run As –> Android Application
在弹出的设备选择窗口选择手机:
点击“OK”,等待程序安装到手机上后,就可在手机上看到运行中的程序了。
在这一步,很多同学会遇到找不到手机的问题,表现为不弹出设备选择窗口,自动在模拟器中运行(话说我第一次运行也遇到这个问题),搜索了一番,可能的原因如下:
1.未安装手机驱动。
对,没错!需要安装手机驱动!不然电脑只是个充电器,不认识手机。在此需要根据自己的手机型号安装不同的驱动,安装好驱动插上手机后,可在手机的通知栏看到“USB已连接”字样,这时候再运行就行了。
2.未开启调试模式
手机上,设置 –> 应用程序设置 –> 开发,USB调试勾上。
3.连上电脑手机没反应
换个USB插口或USB线试试
五、程序打包和签名
很遗憾,这一节没能接触到代码的编写,时间都花在熟悉IDE上了,将就这个空的Demo程序练习一下打包、签名吧。
工程Demo上点右键 –> Export…
标注2处选择Export Android Application,点击“Next”,让选择需要打包的工程,直接“Next”,到keystone页面
选择”Create new keystore”,因为我们还没keystore。如果有,直接选择。
选择生成keystore后存放的位置,设置密码(这个密码很重要)。
补充说明一下keystore:
keystore实际上是一个数字证书,用来对Android程序进行签名。如果有不知道数字证书的同学,>>请到此查看相关资料。
Android通过数字证书确定程序包的唯一性,与程序建立信任关系,在使用者的认可下使用预先申报的资源,这个数字证书并不需要权威的数字证书签名机构认证。
建议开发者使用同一个数字证书对你的作品进行签名,有如下好处:
- 有利于程序升级,当新版程序和旧版程序的数字证书相同时,Android系统才会认为这两个程序是同一个程序的不同版本。如果新版程序和旧版程序的数字证书不相同,则Android系统认为他们是不同的程序,并产生冲突,会要求新程序更改包名。
- 有利于程序的模块化设计和开发。Android系统允许拥有同一个数字签名的程序运行在一个进程中,Android程序会将他们视为同一个程序。所以开发者可以将自己的程序分模块开发,而用户只需要在需要的时候下载适当的模块。
- 可以通过权限(permission)的方式在多个程序间共享数据和代码。Android提供了基于数字证书的权限赋予机制,应用程序可以和其他的程序共享概功能或者数据给那那些与自己拥有相同数字证书的程序。如果某个权限(permission)的protectionLevel是signature,则这个权限就只能授予那些跟该权限所在的包拥有同一个数字证书的程序。
接下来填写证书信息:
根据自己的情况填写,点击“Next”,生成keystore,到下一页面:
选择APK文件生成的位置,点击Finish,完成。
把Demo.apk手动安装到手机上运行看是否正常运行。
结尾
这一节主要是熟悉Eclipse以及Android开发的一些东西,没有编码。基础比较差,只能一步一步来。
下一节将动手编码,熟悉Android SDK以及JAVA。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂