手把手创建第一个 Android 项目

news2025/2/22 10:53:40

目录

1.  如何创建 Android 项目

2.  编写代码

3.  运行 Android 应用程序

4.   Android 项目结构


        Android的开发环境搭建好之后,我们就可以开发并运行Android程序了。Android程序是运行在手机等移动设备上的,但是开发 Android 程序却一般不会放在移动设备上完成,而是在安装有Windows, Linux或MacOS的个人计算机(PC)上完成。这一过程与传统的嵌入式开发一样,有宿主机和目标机之分,在本书中,我们把开发 Android 程序的机器叫做宿主机或PC机,把运行Andoid程序的机器叫做目标机、目标设备或Android移动设备,它可以是Android手机、Android平板或AVD.

        如果有 Android 移动设备,那我们可以在 PC 机上编写Android 代码,然后将移动设备与PC机相连,之后就可以使用移动设备来运行、调试Android程序,如果没有Android移动设备,我们使用AVD进行Android程序的运行与调试。

1.  如何创建 Android 项目

        创建一个最简单的Android应用程序的步骤如下。

        在Eclipse中选择菜单File->New>Projects,在其中双击菜单项Android ApplicationProject,之后会出现项目创建对话框,如图1-1所示。

图1-1 Android新建项目对话框

        在其中输入应用程序名字、项目名称、应用程序包名,选择SDK支持的最低版本、目标版本、编译版本和主题之后,然后点击Next按钮,之后会出现工程配置对话框,如图 1-2 所示。

图1-2 新建项目配置

        在此界面中所有选项默认,点击Next按钮,出现如图1-3 所示。

图1-3 项目图标配置

        在图中的项目图标配置对话框,选项默认,再次点击Next 按钮,出现如图1-4所示.

图1-4 新建Activity选择

        在图中的新建Activity选择对话框,选项默认,再点由Next按钮,出现如图1-5所示.

图1-5 指定入口Activity及其界面布局文件名称

        在图中的新建Activity配置对话框,输入入口Activity及其界面布局文件名称后,最后点击Finish按钮, Android项目就创建好了。

2.  编写代码

        通过上面的操作开发环境将生成一个 Android 应用程序,其中包括了入口 Activity和对应的界面布局文件代码,我们可以在Eclipse的左侧窗格的Package Explorer面板中,通过双击某个项目条目,来打开源文件进行代码编写或修改。程序编辑窗口如图2-1所示。

图 2-1 Android 程序编辑窗口

        在上面新建的第一个项目中,我们不打算修改任何代码,将直接运行这个项目。

3.  运行 Android 应用程序

        在Package Explorer面板中的Android_Demo01项目上右击,在弹出的快捷菜单中选择Run As-> Android Application,即可自动的在已开启的AVD上运行这个项目,如图3-1所示。

图3-1  运行Android项目

        运行后的效果如图 3-2所示,从图中我们可以看出该Android程序实现了在界面上显示一行文本信息“Hello world!”。

图 3-2 运行效果

        除此之外,如果此时焦点在项目中 sre/目录下的Java文件中,还可以通过菜单栏的Run->Run、工具栏的Run按钮或快捷键Ctrl+F11来运行Android应用程序。

        需要注意,如果有多个 AVD 和真机都已被启动且连接在开发计算机上,则可以右击项目名称,选择弹出快捷菜单项 Run As-> Run Configurations,之后会出现 Run Configurations(运行配置)对话框,在这里可以指定使用哪个目标机来运行本 Android 项目。

4.   Android 项目结构

        Android 的每一个应用程序都是一套具有固定框架的程序与代码集合,里面包括 Java 源代码、界面布局文件、项目配置文件(如AndroidManifest.xml)、字符串数据配置文件、主题和样式(Style)配置文件、图片资源、菜单布局文件、自动生成的 R.java、Apk(可执行的安装包)文件、库文件等。

        上述的一系列程序框架不用开发者自己手动管理,在每次建立好一个 Android 项日后,ADT 都会帮我们把这套框架生成好,而开发者需要做的事情就是在框架的每个条目下加入新的内容即可。当然,不用开发者去修改所有的内容,一些是需要修改的,而另一些是系统自动生成、不用修改的。以上一节的 Android_Demo01 项目为例,一个一般的Android 应用程序框架如下图 4-1所示。

图 4-1 Android 的程序框架示意图

图4-1 所示的 Android应用程序框架中包含的一些文件和文件夹,具有如下作用。

(1) src/:Java 源代码的存放位置,其和普通 Java 工程中的 sre 目录是一样的。在上面项目工程中的 MainActivity.java 就在这个文件夹下。

(2) gen/:存放系统自动生成的配置文件,开发者不要更改。其中的R.java是资源索引文件,将XML文件中的资源映射为一个资源ID,供Java代码使用。Android开发工具会自动根据你放入res目录的xml界面文件、图标与常量,同步更新修改R.java文件。如果不能生成,则说明XML文件中含有错误。

(3) assets/:也可以存放资源,但不会生成资源 ID,需要通过 AssetManager 以二进制流的形式访问。

(4) bin/:存放应用程序译后生成的可执行文件(.apk)。应用程序中用到的/res/drawable和/res/raw下的资源会被打包进APK文件.

(5) libs/:存放应用程序所使用的 JAR 包,可以把使用到的第三方JAR 包放在这。

(6) res/:存放应用程序用到的所有资源:界面布局、主题样式、字符串、图片、多媒体资源等。但它和assets目录最大的区别在于, res 目录下的资源文件会在gen目录下的R.java 文件中产生以资源文件名命名的静态属性。

该目录下还包括一系列的文件目录,有如下含义:

1.  其中 drawable-hdpi、drawable-ldpi、 drawable-mdpi 目录下分别用于存放高、低、中分辨率的图片或sclectoi (背景选择器)等,主要是Audivid考虑到为了让图片资源适应各种不同屏幕的分辨率,应用程序会自动根据手机分辨率选择对应的图片资源;

2.  values 用于存放字符串资源、颜色资源、尺寸资源的 xml 文件。

3.  layout/:存放界面布局的XML义件, Java代码中使用R.layout.xxx获得。上面项目工程中的布局文件activity_main.xml就在这个文件夹下,

4.  layout/:存放界面布局的XML文件, Java代码中使用R.layout.xxx获得。上面项目工程中的布局文件activity_main.xml就在这个文件夹下。

5.  menu/:存放选项菜单的XML配置文件。

6.  raw/:图2-17所示的Android应用程序框架中并没有包含raw/文件夹, raw/需要用户手动建立,用以存放多媒体资源,在Java代码中可以使用R.raw.xxx引用资源。

7.  values/:存放字符串、颜色资源、尺寸资源的 XML 文件。

8.  values-vll:定义的主题样式供API11 及以上(3.x)的设备使用。values-v14:定义的主题样式供API 14及以上(4.x)的设备使用。

(7) AndroidManifest.xml:应用级的配置文件,配置一些与应用程序有关的重要信息,包括主包名、权限、程序组件等等。这个文件列出了应用程序所提供的功能,在这个文件中,你可以指定应用程序使用到的服务(如电话服务、互联网服务、短信服务、GPS服务等等)。另外当你新添加一个Activity的时候,也需要在这个文件中进行相应配置,只有配置好后,才能调用此Activity。

(8) project.properties文件:项目环境信息,一般不需要修改此文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1171195.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:set和map的使用

set和map的使用 1.关联式容器2.key模型和key_value模型3.set3.1一些注意点3.2set的使用3.3习题 4.multiset5.map5.1一些注意点5.2map的使用5.3习题 6.multimap 1.关联式容器 序列式容器:比如我们之前讲的vector、string、list等均为序列式容器,特点是按…

回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测

回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测 目录 回归预测 | Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现MPA-BP海洋捕食者算法优化BP神经网络多变量回归预测&…

重新思考边缘负载均衡

本文介绍了Netflix在基于轮询的负载均衡的基础上,集成了包括服务器使用率在内的多因素指标,并对冷启动服务器进行了特殊处理,从而优化了负载均衡逻辑,提升了整体业务性能。原文: Rethinking Netflix’s Edge Load Balancing[1] 我…

全功能测试框架 - Carina

Carina是一个基于Java的测试自动化框架,它将所有测试层结合在一起:移动应用程序(web、本机、混合)、web应用程序、REST服务和数据库。 github:GitHub - zebrunner/carina: Carina automation framework (TestNG): Web…

MySQL(7):单行函数

不同DBMS函数的差异 内置函数: 系统内置的通用函数。 自定义函数: 根据自己的需要编写的函数。 大多数 DBMS 使用(||)或者()来做拼接符,而在 MySQL 中的字符串拼接函数为concat()。 大部分 D…

【rust/esp32】初识slint ui框架并在st7789 lcd上显示

文章目录 说在前面关于slint关于no-std关于dma准备工作相关依赖代码结果参考 说在前面 esp32版本:s3运行环境:no-std开发环境:wsl2LCD模块:ST7789V2 240*280 LCDSlint版本:master分支github地址:这里 关于s…

asp.net docker-compose添加dapr配置

docker-compose.yml添加配置 webapplication1-dapr:image: "daprio/daprd:1.9.6"network_mode: "service:webapplication1"depends_on:- webapplication1 docker-compose.override.yml中添加 dapr-placement:command: ["./placement", "-po…

Nacos 注册中心如何做到每秒百万级别的服务注册?

1. Nacos 注册中心如何做到每秒百万级别的服务注册 ? 在 nacos.io 官方文档里边有这样一个性能测试报告: PS:TPS 是指每秒能够处理的事物数 / 任务数 从图中可以看出当有 4 台机器,并发数为 100 的时候,注册实例的测…

SpringSecurity全家桶 (一) —— 简介

1. 概述 Spring Security 是一个框架,提供针对常见攻击的身份验证、授权和保护。 它为保护命令式和响应式应用程序提供了一流的支持,是保护基于 Spring 的应用程序的事实标准。 2. 了解 shiro: 在之前SSM框架盛行的时代,项目的…

在maven官网中如何下载低版本的maven

链接:https://archive.apache.org/dist/maven/maven-3/

万宾科技管网水位监测助力智慧城市的排水系统

以往如果要了解城市地下排水管网的水位变化,需要依靠人工巡检或者排查的方式,这不仅加大了人员的工作量,而且也为市政府带来了更多的工作难题。比如人员监管监测不到位或无法远程监控等情况,都会降低市政府对排水管网的管理能力&a…

汇编语言(举个栗子)

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在不同…

物理机安装黑群晖

物理机安装黑群晖 黑群晖系统: DSM 6.2.0–6.2.3 引导版本: 1.04b (首选推荐版本) 针对机型: DS918 引导方式: 引导方式:传统BIOS和UEFI(可选) 点击此处链接,引导下载地址 点此处为:DS918 DSM 6.2.3-25426 Update2 系…

【LeetCode:421. 数组中两个数的最大异或值 | 位运算 贪心】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

【漏洞复现】Drupal XSS漏洞复现

感谢互联网提供分享知识与智慧,在法治的社会里,请遵守有关法律法规 复现环境:Vulhub 环境启动后,访问 http://192.168.80.141:8080/ 将会看到drupal的安装页面,一路默认配置下一步安装。因为没有mysql环境,…

JavaEE平台技术——预备知识(Web、Sevlet、Tomcat)

JavaEE平台技术——预备知识(Web、Sevlet、Tomcat) 1. Web基础知识2. Servlet3. Tomcat并发原理 1. Web基础知识 🆒🆒上个CSDN我们讲的是JavaEE的这个渊源,实际上讲了两个小时的历史课,给大家梳理了一下&a…

鲁棒性的含义以及如何提高模型的鲁棒性

1、含义 鲁棒是Robust的音译,也就是健壮和强壮的意思。它也是在异常和危险情况下系统生存的能力。比如说,计算机软件在输入错误、磁盘故障、网络过载或有意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性”&am…

蓝桥杯官网填空题(方格填数)

题目描述 本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。 在 2 行 5 列的格子中填入 1 到 10 的数字。 要求: 相邻的格子中的数,右边的大于左边的,下边的大于上边的。 如下图所示的 …

项目实战:在首页上添加分页按钮

1、在index.html添加div_pagination <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>Title</title><link rel"stylesheet" href"style/index.css"><script src&qu…