热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Android核心功能模块介绍

  以下是Android的各个重要模块,从具体的功能模块了解Android,就可以知道Android具体可以做些什么   一、界面框架   Android界面框架最有特色的就是资源

    以下是Android的各个重要模块,从具体的功能模块了解Android,就可以知道Android具体可以做些什么

 

    一、界面框架

 

    Android界面框架最有特色的就是资源和布局体系,通过完善的控件库和简明的接口,可以快速搭建界面。

    Android的每个交互界面都由一棵控件树构成,控件树上的控件皆派生自android.view.View类,非子节点的控件都派生自android.view.ViewGroup类称之为容器控件。控件都受父控件树的管理,父控件负责子控件的丈量和绘制,并向子控件发送交互事件。其中比较特殊的就是布局控件,这是一种自容器控件,和其他控件不同其主要任务是排列内部的子控件。每个控件都有焦点,可视性,可用性,标示,背景等控件属性,为了获得用户和控件的的交互事件,会为控件添加各种交互事件监听对象。

    Android部署了完整的应用资源体系,将和界面相关的元素:界面布局、文字信息、尺寸信息、颜色和图像,都从代码中剥离出来由资源目录、XML资源文件和数据资源文件共同构成。因为XML文件比逻辑化的代码更适合描述界面这样的结构化概念。而资源目录结构可以解决设备的屏幕特征以及外部设备的兼容性问题。

 

    二、数据存储

 

    数据存储有两种方式进行本地存储以及上传到远端服务器进行云存储。

    本地数据存储的最大特点是数据的私有化,每个应用的配置信息和数据库文件等数据都是其私有的,其他应用没有权限读写。保证了应用数据的安全性。如果需要将数据共享给其他应用一个策略是构造一个数据源组件(content provider),其他应用的组件可以通过数据源组件的接口访问它所提供的数据源组件接口访问它所提供的数据,另一个常用的方法将数据放入扩展存储设备中可以被所有应用共同访问。

    Android对本地数据的存储,可以有多种文件格式:普通文件,设置文件,数据库等。设置文件是专门存储应用设置信息的,依照键值对的形式进行保存。Android的数据库依靠Sqlite的支持,提供了更便捷的读写类库支持,开发者可以使用SQL或者结构化的数据对象对数据库进行增删改查等操作。

    实际环境中数据存储最重要的是策略合适,针对不同数据需要综合性能,简便性,可靠性等多种因素考虑。

 

    三、网络通信

 

    Android系统会负责底层网络的连接管理,开发者可以直接通过Http或socket与远端服务器连接。Android不仅支持点到端的连接还支持点到点的连接(比如蓝牙和NFC),蓝牙则主要依托于开源项目BlueZ。Android内部内嵌了基于Webkit实现的浏览器控件。在进行对互联网功能的开发需要考虑节约流量、电量、连接稳定性等。

 

    四、地理信息

 

    地理信息和网络通信密切想关,因为对于地理信息的获取可以通过网络利用基站信息进行定位,还可以基于GPS定位,基站定位精度要比GPS低一些,通常在数十米到数百米之间,但基站定位的适应能力应该更强,不会受周围建筑的影响。

 

    五、图形和多媒体处理

 

    Android支持MPEG4、MP3、AAC、AMR、JPG、PNG、GIF等等格式的图像音频。

    (1)Android的音频处理依赖于开源的OpenCORE支持:这是基于C/C++的音视频处理库,在核心类库层进行多种格式文件的编解码及流媒体处理

    (2)Android的图像处理依赖于开源的Skia支持:帮助进行读写图像数据,进行位图到PNG、JPG格式图像的编解码

    (3)Android对2D图形的使用主要由android.graphics.drawable包来实现:该包中的类都是android.graphics.drawable.Drawable基类的具体实现,大部分2D图像及动画都可以通过其来处理,支持图形图像,纯色渐变等静态效果的绘制,还支持局部或全局的缩放、拉伸和旋转等操作。

    (4)Android在3d处理使用了OpenGLES:可以通过android.opengl包来使用OpenGL进行开发,也可以抛开封装直接使用Android NDK提供的OpenGLES接口进行开发。

 

    六、外部设备

    每个移动设备都需要支持各种外部设备,Android可以兼容各类设备:键盘、触摸屏、摄像头等。还支持各种类型的感应器:加速度感应器、压力传感器、温度传感器、光学传感器等等。通过android.hardware.SensorManager可以获得设备上所有的传感器信息并获得数据。

 

    以上核心功能将Android打造成了一个开放的平台,可以运行在各种设备上,因为可以兼容不同的硬件、屏幕尺寸、外设等等,针对不同的设备环境,分别定制统一界面的资源文件放入特定的资源目录,这样就可以在运行时寻找最符合当前设备的资源文件。Android在高度组件化下的各个应用只有明确的组件边界,而不再有明确的进程边界和应用边界,应用的一个功能是很多应用的若干组件共同完成。

 

 


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了PhysioNet网站提供的生理信号处理工具箱WFDB Toolbox for Matlab的安装和使用方法。通过下载并添加到Matlab路径中或直接在Matlab中输入相关内容,即可完成安装。该工具箱提供了一系列函数,可以方便地处理生理信号数据。详细的安装和使用方法可以参考本文内容。 ... [详细]
  • 解决Cydia数据库错误:could not open file /var/lib/dpkg/status 的方法
    本文介绍了解决iOS系统中Cydia数据库错误的方法。通过使用苹果电脑上的Impactor工具和NewTerm软件,以及ifunbox工具和终端命令,可以解决该问题。具体步骤包括下载所需工具、连接手机到电脑、安装NewTerm、下载ifunbox并注册Dropbox账号、下载并解压lib.zip文件、将lib文件夹拖入Books文件夹中,并将lib文件夹拷贝到/var/目录下。以上方法适用于已经越狱且出现Cydia数据库错误的iPhone手机。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • Google Play推出全新的应用内评价API,帮助开发者获取更多优质用户反馈。用户每天在Google Play上发表数百万条评论,这有助于开发者了解用户喜好和改进需求。开发者可以选择在适当的时间请求用户撰写评论,以获得全面而有用的反馈。全新应用内评价功能让用户无需返回应用详情页面即可发表评论,提升用户体验。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 集成电路企业在进行跨隔离网数据交换时面临着安全性问题,传统的数据交换方式存在安全性堪忧、效率低下等问题。本文以《Ftrans跨网文件安全交换系统》为例,介绍了如何通过丰富的审批流程来满足企业的合规要求,保障数据交换的安全性。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
author-avatar
洋洋哥2602913063
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有