android基础知识

来源:互联网 发布:剑三编辑器骨骼数据 编辑:程序博客网 时间:2024/06/18 18:04

一、架构

架构图:android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux内核层。

 

第一层:应用程序

Android平台的应用层上包括各类与用户直接交互的应用程序,或由java语言编写的运行于后台的服务程序。例如,智能手机上的常见程序,如电话拨号/图片浏览器/游戏/地图/web浏览器等程序,以及开发人员开发的其他应用程序。

第二层:应用程序框架

提供开发Android应用程序所需的一系列类库,使开发人员可以进行快速的应用程序开发,方便重用组件,也可以通过继承实现个性化的扩展。

第三层:各种库和Android的运行时环境

库:系统类库大部分由C/C++编写,所提供的功能通过Android应用程序框架为开发者所使用。
Android的运行时环境:包含核心库和Dalvik虚拟机两部分。
•   核心库:核心库提供了Java5 se API的多数功能,并提供Android的核心API。
•   Dalvik虚拟机:基于apache的java虚拟机,并被改进以适应低内存,低处理器速度的移动设备环境。

第四层:Linux内核

Android以Linux操作系统内核为基础,借助Linux内核服务实现硬件设备驱动,进程和内存管理,网络协议栈,电源管理,无线通信等核心功能。 

二、apk反编译

正常情况下,Android应用打包成apk之后,就无法再看到开发这个应用时使用的资源文件以及代码了。

但是通过网上提供的一些工具,可以将apk进行反编译,apk反编译之后,就可以看到开发这个应用使用的资源文件(图片)、layout、样式、相关的实现代码等。

(反编译步骤 http://blog.csdn.net/vipzjyno1/article/details/21039349/)

反编译可分别得到以下两点:

1)程序的源代码、图片、XML配置、资源等文件。(使用apktool工具)

其中AndroidManifest.xml存储apk的版本号,包名,权限,目录结构等信息;


2)Java源代码(apk文件后缀改为zip,直接解压,使用dex2jar和jd-gui工具)

三、原生app、Web app、混合app

  • 原生app (Native App) 

  • 该模式对IOS、Android等不同的手机操作系统采用不同的语言和框架进行开发,是专门针对某一类移动设备而生的,它们都是被直接安装到设备里, APP应用所有的UI元素、数据内容、逻辑框架均安装在手机终端上,原生App用户一般通过网络商店或者卖场来获取应用。
  • 举例:酷狗音乐、美图秀秀、微软PowerPoint /Word等。

  • Web app

  • 是一种框架型APP开发模式(HTML5 APP 框架开发模式),该开发具有跨平台的优势,该模式通常由“HTML5云网站+APP应用客户端”两部份构成,APP应用客户端只需安装应用的框架部份,而应用的数据则是每次打开APP的时候,去云端取数据呈现给手机用户。
  • 举例:通过手机浏览器打开的百度、淘宝、京东等。

  • 混合 app (Hybrid App) 

  • 指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发和低成本的优势”。
  • Hybrid App主要以JS+Native两者相互调用为主,从开发层面实现“一次开发,多处运行”的机制,成为真正适合跨平台的开发。
  • 举例:如掌上百度、淘宝客户端、京东客户端等。

 

原生app、Web app、混合app对比:

 

原生 app

混合 app

 

Web app

 

 

 

优点

1.可访问手机所有功能(GPS、摄像头);
2.速度更快、性能高、整体用户体验最好;
3.可线下使用;
4.支持大量图形和动画;
5.在App Store里容易发现;
6.应用下载能创造盈利;
7.app质量及安全性好。
1.原生应用和Web应用的结合体,应用比例很自由;
2.开发成本低;
3.能节省跨平台的时间和成本,只需编写一次核心代码就可部署到多个平台;
4.可任意调整风格,DIV版面布局;
5.兼容多平台;
6.顺利访问手机的多种功能;
7.App Store中可下载;
8.可线下使用。
1.运行到浏览器上,项目独立;
2.跨平台开发工具选择多;
3.不需要安装额外软件,控制版本非常容易;
4.应用安装包小巧,只包含框架文件而大量的UI元素、数据内容存放在云端;
5.无须频繁更新APP应用,与云端实现的是实时数据交互;

 

 

缺点

1.开发及维护成本高;
2.支持设备非常有限(一般是哪个系统就在哪个平台专属设备上用);
3.上线时间不确定(App Store审核过程不一);
4.内容限制(App Store限制);
5.获得新版本时需重新下载应用更新;
6.安装包相对较大;
1.不确定上线时间;
2.用户体验不如本地应用;
3.性能稍慢(需要连接网络);
4.技术还不是很成熟。
1.只能使用有限的移动硬件设备能力,无法使用更多移动硬件设备的独特功能(语音、摄像头、短信、GPS、蓝牙、重力感应等);
2.搜索Web app比较困难;
3.质量及安全性无法得到保障;
4.必须联网(通过APP框架向云网站取UI及数据);
5.移动应用用户体验不是很好;
6.消耗手机上网流量;

 

 

特点

1.Native App可以充分利用设备的特性,而这一点往往是Web浏览器做不到的,所以对一个产品本身而言,Native App是最佳的选择。
2.适用企业:游戏、电子杂志、管理应用、物联网等无需经常更新程序框架的APP应用。
1.快速迭代,高效开发,低成本上线是每一个App开发团队追求的目标。同时,随着HTML 5的不断升温和智能手机硬件性能的提高,Hybrid App的概念应运而生。这种“Native搭台,HTML 5唱戏”的Hybrid App开发模式一时间受到各个开发团队追捧,快速进入了大量开发团队,成为主流开发模式。

 

1.移动Web无所不在,移动Web是目前唯一的支持各种设备访问的平台,与桌面Web一样,移动Web支持各种标准的协议。移动Web也是唯一一个可供开发者发布移动应用的平台,它将各种移动交互与桌面任务有效地连接了起来;
2.适用企业:电子商务、金融、新闻资讯、企业集团需经常更新内容的APP应用。