Android应用程序结构总结

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

Android应用程序结构分析

由于是初学者,对于Android应用程序的结构的认识是一穷二白的,对于开发Android应用程序,必须先了解其程序的结构和作用。一下就用一个简单的例子来解剖:


从上图的程序来看,主要的文件有一下几个:

HelloActitity.java

HelloActitity.是继承Actitity基类的,其主要功能就相当于界面文件,用来将数据和和界面显示给用户,是用户交互的第一入口。以下是其文件的代码结构:

从图中可以看出,它有两个方法,onCreate(Bundle saveInstanceState)和onCreateOptionsenu(Menu menu)。

当HelloActivity.java文件加载的时候,首先是调用onCreate(Bundle savedInstanceState)方法。而其中super.onCreate(saveInstanceState)是调用父类Activity的onCreate方法;而setContentView(R.layout.activity_hello)是给Activity 设置可视视图,视图由R类来寻找。

res文件夹,laout中的activity_hello.xml,values中的string.xml,styles.xml,dimens.xml

res文件夹是负责整个应用的资源文件的存放和管理,其中activity_hello.xml是HelloAtivity面板的视图设置,其代码如下:

Activity_hello.xml是一个xml文件,利用xml控制桌面应用时比较少见的,而在网页上是经常发生的。从以上的代码可以看出,程序的界面是线性布局的(LinearLayout)和一个文本框(TextView)所组成的。Res的文件夹的其他文件也是香港的资源描述。

AndroidManifest.xml

每个应用程序都会有AndroidManifest.xml文件,该文件向Android系统描述了本程序所包含的组件,所实现的功能,能处理的数据,要请求的资源。其代码如下:

gen包中的R.java文件

R文件是由ADT自动生成的,其主要负责调用应用程序的非代码资源。

R文件中可以看出,每个资源都会有相对应的一个整数。

Android.jar开发包

作为一个Java项目,通常情况下都会引入要用到的工具类,也就是Jar包,在Android开发中,绝大部分开发用的工具包都被封装到一个名叫Android.jar的文件里了。

如果我们在Eclipse中展开来看,可以看到j2se中的包,apache项目中的包,还有Android自身的包文件。在这里我们简单了解一下Android的包文件:

android.app :提供高层的程序模型、提供基本的运行环境

android.content :包含各种的对设备上的数据进行访问和发布的类

android.database :通过内容提供者浏览和操作数据库

android.graphics :底层的图形库,包含画布,颜色过滤,点,矩形,可以将他们 直接绘制到屏幕上.

android.location :定位和相关服务的类

android.media :提供一些类管理多种音频、视频的媒体接口

android.net :提供帮助网络访问的类,超过通常的java.net.* 接口

android.os :提供了系统服务、消息传输、IPC 机制

android.opengl :提供OpenGL 的工具

android.provider :提供类访问Android 的内容提供者

android.telephony :提供与拨打电话相关的API 交互

android.view :提供基础的用户界面接口框架

android.util :涉及工具性的方法,例如时间日期的操作

android.webkit :默认浏览器操作接口

android.widget :包含各种UI 元素(大部分是可见的)在应用程序的屏幕中使用


转载于:https://my.oschina.net/bonelwh/blog/160765

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

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

相关文章

递归--整数划分问题

问题描述: 将正整数n表示成一系列正整数之和:nn1n2…nk,其中n1≥n2≥…≥nk≥1,k≥1。正整数n的这种表示称为正整数n的划分。 问题1: 输出整数n的所有可能的划分,如: 输入:6 输出&am…

嵌入式软件开发注意事项一

嵌入式软件开发注意事项一1、首先对测试板进行各方面硬件性能的测试:电源测试,时钟测试等等。要确保硬件最基本的几个性能是正常的,否则后面真的无法进行软件的开发,因为如果你没有确保硬件的正确性,那么后面进行软件调…

Oracle 表空间与数据文件

-- --Oracle 表空间与数据文件 -- /* 一、概念 表空间:是一个或多个数据文件的逻辑集合 表空间逻辑存储对象:永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空间分类:系统表空间…

简单的深度优先遍历和广度优先遍历

代码来源于《啊哈&#xff01;算法》。 1、深度优先遍历&#xff1a; &#xff08;1&#xff09;无权值 #include<stdio.h> int book[101],n, e[1001][1001], sum; void DFS(int cur) {int h;sum;printf("%d ", cur);//目前所在点进行的操作&#xff0c;可以…

【 2013华为杯编程大赛成都第三组前两题试题及答案】

2013-09-12 16:41:24 题目描述 某省会城市街道纵横交错&#xff0c;为了监控路灯的运行状况&#xff0c;每条街道使用一个数字字符串标识该街道上所有路灯的运行状况。假设路灯只有如下3种状态&#xff08;分别用数字0, 1, 2标识&#xff0c;一盏路灯只对应其中一种状态&#x…

webrtc笔记(1): 基于coturn项目的stun/turn服务器搭建

webrtc是google推出的基于浏览器的实时语音-视频通讯架构。其典型的应用场景为&#xff1a;浏览器之间端到端(p2p)实时视频对话&#xff0c;但由于网络环境的复杂性(比如&#xff1a;路由器/交换机/防火墙等&#xff09;&#xff0c;浏览器与浏览器很多时候无法建立p2p连接&…

ADS中startup.s文件启动分析

映像文件分析&#xff0c;ADS 中startup.s 文件启动分析&#xff0c;学嵌入式开发ADS 必看2010-04-17 10:21声明&#xff1a; 我也是转来的&#xff0c;不是原创&#xff0c;由于别人是网易的日志&#xff0c;不能直接转&#xff0c;所以…… 感谢原创&#xff01;让我明白了st…

String Statistics(2008年珠海市ACM程序设计竞赛)

String Statistics 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 描述 You have an n n matrix of lower-case letters. You start from somewhere in the matrix, walk in one of the eight directions (left, right, up, down, up-left, up-right, …

从0-1背包问题学习回溯法、分支界限法、动态规划

一、0-1背包问题的描述 下面将使用回溯法、分支界限法、动态规划法来分析和解决此问题。 二、回溯法 &#xff08;1&#xff09;算法步骤 &#xff08;2&#xff09;代码如下&#xff08;没有裁剪函数&#xff09;&#xff1a; 用i和n来判断结束与否&#xff0c;是因为解空间…

高可用性的HDFS—Hadoop分布式文件系统深度实践

《高可用性的HDFS—Hadoop分布式文件系统深度实践》基本信息作者&#xff1a; 文艾 王磊 出版社&#xff1a;清华大学出版社 ISBN&#xff1a;9787302282587上架时间&#xff1a;2012-5-14出版日期&#xff1a;2012 年5月开本&#xff1a;16开页码&#xff1a;371版次&#xff…

推荐:解析“extern”

http://blog.csdn.net/keensword/article/details/401114 写的很不错转载于:https://www.cnblogs.com/ATually/archive/2012/04/05/2432826.html

【字符串问题】求一个字符串中重复出现的最长的子串

2013-09-14 15:34:16 用后缀数组求一个字符串中重复出现的最长的子串。 用C中的string类可以很方便地进行操作&#xff0c;需将后缀数组保存在vector<string>&#xff0c;如下面代码中的string版本所示&#xff0c;但这样就会因为<string>有很大的开销&#xff1b;…

关于scanf和的问题

简单地说&#xff0c;如果使用scanf函数把一个字符串读进一个字符数组中&#xff0c;不要使用&&#xff1b;读取其他基本变量类型时&#xff0c;在变量名之前添加&。或者说&#xff0c;字符串名字本身就是一个地址了&#xff0c;所以不用取地址符。 如以下代码&#xf…

Oracle lower() Upper()函数

即将某字段信息中的字母转成小写、大写的方法。 将 user表里的user_name字段信息中含有字母的全部转成大写的方法&#xff1a; update user set  user_nameUpper(user_name) 同理得到将 user表里的user_name字段信息中含有字母的全部转成小写的方法&#xff1a; update user …

【作品】超级玛丽射击版

【下载地址】稍后上传 【以下内容摘自试验报告&#xff0c;可能狗屁不通&#xff0c;尽情谅解】 &#xff0d;游戏介绍: 简单的射击游戏,键盘控制动作[角色的移动,跳跃等],鼠标控制攻击的位置方向, 单击鼠标即射击,同时可以设置游戏规定时间,时间到则结束游戏. &#xff0d;游戏…

嵌入式系统Linux内核开发工程师必须掌握的三十道题

嵌入式系统Linux内核开发工程师必须掌握的三十道题 如果你能正确回答以下问题并理解相关知识点原理&#xff0c;那么你就可以算得上是基本合格的Linux内核开发工程师&#xff0c;试试看&#xff01; 1) Linux中主要有哪几种内核锁&#xff1f; Linux的内核锁主要是自旋锁和信号…

MySQL锁的用法之行级锁

2019独角兽企业重金招聘Python工程师标准>>> 行级锁是MySQL中粒度最小的一种锁&#xff0c;他能大大减少数据库操作的冲突。但是粒度越小&#xff0c;实现的成本也越高。MYISAM引擎只支持表级锁&#xff0c;而INNODB引擎能够支持行级锁&#xff0c;下面的内容也是针…

matlab中二维插值函数interp2的使用

下面是一段产生log-normal分布的代码&#xff0c;以此进行说明。 clear all; clc; for t1:100Traffic(t) curve(t); end MaxTraffic max(Traffic); w 0.2; Wmax 2*pi*w/3000; x[0:10:300]; y[0:10:300]; Nxlength(x); Nylength(y); Sigma 0.53; t 0&#xff1b; M 10*cu…

8天玩转并行开发——第五天 同步机制(下)

承接上一篇&#xff0c;我们继续说下.net4.0中的同步机制&#xff0c;是的&#xff0c;当出现了并行计算的时候&#xff0c;轻量级别的同步机制应运而生&#xff0c;在信号量这一块 出现了一系列的轻量级&#xff0c;今天继续介绍下面的3个信号量 CountdownEvent&#xff0c;Se…

hive中not in优化

比如&#xff1a;A,B两表&#xff0c;找到ID字段中&#xff0c;存在A表&#xff0c;但不存在B表的数据。A表共13w&#xff0c;去重后3w,B表共2W&#xff0c;且有索引方法一not in&#xff0c;易理解&#xff0c;效率低&#xff0c;时间&#xff1a;1.395sselect distinct A.id …