一、移动端跨平台的技术

跨平台概念

跨平台是软件开发中一个重要的概念,即不依赖于操作系统,也不信赖硬件环境。一个操作系统下开发的应用,放到另一个操作系统下依然可以运行。相对而言如果某种计算机语言不用修改代码即可做到高度跨平台,那么此语言就越抽象,硬件控制力就越低,只适合开发高度抽象的模型系统。诸如Java,delphi和易语言,都已做到了跨平台。它们将可以在多种系统下开发,运行和维护。

自智能手机产生以来,特别是在07年苹果推出第一代Iphone以后,各种移动端操作系统出现并迅速普及。在开发过程中,一套软件需要在多种系统上开发,大大增加了开发成本。为了解决这个问题,市场上渐渐开始出现了一些移动端的跨平台技术和工具。

到目前为止,移动端跨平台技术主要分为一下四类:

Web 流:也被称为 Hybrid技术,它基于 Web相关技术来实现界面及功能。比如Cordova(phonegap)

代码转换流:将某个语言转成 Objective-C、Java或 C#,然后使用不同平台下的官方工具来开发。比如j2objc

编译流:将某个语言编译为二进制文件,生成动态库或打包成 apk/ipa/xap 文件。比如mailbox,Microsoft office

虚拟机流:通过将某个语言的虚拟机移植到不同平台上来运行。比如BlackBerry 10

二、Cordova的结构

1、Cordova简介

Cordova是一个用基于HTML,CSS和JavaScript的,创建移动跨平台移动应用程序的快速开发平台。

Cordova的前身是Phonegap,第一段代码是在2008年8月的iPhoneDevCamp上写成的。

2011年7月29日,PhoneGap发布了1.0版产品。2011年10月4日Adobe公司收购了PhoneGap和PhoneGap Build的新创公司Nitobi Software,随后将Phonegap的核心代码剥离并捐给了Apache公司,并改名为了Cordova。最新的版本为Cordova6.2.0。

2.Cordova的结构

Web App层是开发人员编写代码的主要地方,应用程序以网页的形式呈现,在一个index.html的本地页面文件中引用所需要的各种Web资源,如CSS、JavaScript、图像、影音文件等。应用程序的配置保存在config.xml文件中。

WebView层用来呈现用户界面,即web页面的展现。例如,在Android平台是通过WebView控件实现web页面的呈现。

Plugins主要用于在JavaScript代码中调用各平台native的功能。Cordova项目已经包含一些核心的plugin,如电池、摄像头、通讯录等。开发人员也可以开发自定义的plugin,来实现所需要的功能。

三、创建一个Cordova应用

1.环境搭建

安装JDK

安装Android SDK

安装Apache Ant

安装Node.js

安装cordova

2.创建Cordova应用

①.创建一个文件夹用于存放稍后创建的Android程序,使用cd命令进入目录.

②.使用:cordova create hello com.example.hello cordovademo这个指令创建一个名为hello的项目,包名为com.example.hello。创建时需要下载cordova类库,网络不行时可能需要耐心等待会。

③.进入刚刚新建的hello项目,使用:cordova platform add android命令添加android平台。

打开eclipse,点击File-import,选择Existing Android Code Into Workspase。

选择刚刚生成的hello文件夹,点击确定。

将两个Project都选择,点击finish。

这是生成的项目结构图。

运行效果图:

我们可以看看在assets文件夹下的index.html查到对应页面的源码:

如以上我们看到的,Cordova默认提供的程序界面和功能非常简单。当然我们可以根据自己的需要,运行标准Web开发技术对页面进行设计。但是当我们需要和不同的设备进行通讯交互时,就需要借助于一些插件,以便能够访问Cordova提供的核心API。  
       一般来说,我们添加一个插件的目的是为了利用Cordova的API访问设备。详细的可用插件列表可以在社区中看到(http://plugins.cordova.io/)。当然我们也可以自定义自己的插件。 可以用CLI搜索可用的插件,比如: cordova plugin search bar code
       我们也可以通过以下命令安装插件,比如:   
       cordova plugin add org.apache.cordova.device //设备API  
       cordova plugin add org.apache.cordova.network-information  //网络
       cordova plugin add org.apache.cordova.camera     //摄像头
       cordova plugin add org.apache.cordova.vibration     //震动

四、Cordova中原生和HTML的交互

这一部分下次再写好了

Apache Cordova-Android框架原理研究笔记相关推荐

  1. Visual Studio 2015 和 Apache Cordova 跨平台开发入门(一)

    Visual Studio 2015 和 Apache Cordova 跨平台开发入门(一) 基于 Windows 10 的 Visual Studio 2015 跨平台的应用开发主要分为基于Visu ...

  2. Apache Cordova介绍

    分享一下我老师大神的人工智能教程.零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow Apache Co ...

  3. Apache Cordova development lands on Visual Studio Code

    https://blogs.msdn.microsoft.com/visualstudio/2016/01/28/apache-cordova-development-lands-on-visual- ...

  4. android异常相机处理器,Cordova Android Camera-提供非法参数异常

    我2个月后开始使用cordova Android编程 . 一切都很好主要是现在没有工作的相机 . 但上周一些我的项目目录如何被删除,我重新安装所有插件的cordova和编译项目,但现在它显示错误'非法 ...

  5. 如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例

    前提 Cordova Android 7.0.0开始改变了项目安卓平台的架构.新建一个空项目分别添加Android 6.4.0 和 Android 7.0.0平台: cordova platform ...

  6. java cordova_java – Cordova android后台插件在5分钟后被杀死

    我正在开发一个带有一些位置跟踪的Cordova Android / iOS应用程序. 要不断更新位置,我使用背景地理定位插件( https://github.com/mauron85/cordova- ...

  7. Apache Cordova for ios环境配置

    原文:Apache Cordova for ios环境配置 1.安装针对iOS的工具 https://technet.microsoft.com/ZH-cn/library/dn757054.aspx ...

  8. 如何在Cordova Android 7.0.0 以下版本集成最新插件 极光插件为例 1

    2019独角兽企业重金招聘Python工程师标准>>> 前提 Cordova Android 7.0.0开始改变了项目安卓平台的架构.新建一个空项目分别添加Android 6.4.0 ...

  9. PhoneGap/Cordova Android应用签名发布系列问题处理收集

    PhoneGap/Cordova Android应用签名发布注意事项 Android APK 签名比对 android获取签名,兼容5.0 Android APK 签名比对,防止软件被破解使用 用ap ...

最新文章

  1. leetcode—Valid Parentheses
  2. CPPUNIT的安装和编译
  3. python个人微信支付接口_Python实现微信小程序支付功能
  4. python显示图片_python 一个figure上显示多个图像的实例
  5. 基于SURF特征的目标检测
  6. 对应版本_DNF:韩服新增天域之母等13件特殊史诗,老版本装备全部直升100级
  7. vector容器——插入和删除
  8. kali2020 中文乱码问题
  9. Bioedit 使用
  10. 电脑W7系统怎样安装鸿蒙系统,真正纯净版的win7系统
  11. 《高效能人士的七个习惯》:运用才是关键
  12. android导入html文件怎么打开,Android浏览器如何打开本地html文件
  13. 轻松一刻:给你讲一个只有程序员才能听得懂得笑话
  14. Geant4学习记录(二)B
  15. 用Excle给自己的证件照换底色(蓝底一键换红底),超级简单
  16. js实现的复制和粘贴
  17. python新浪股票接口_python 爬虫sina股票数据
  18. 0111总结-函数与极限-高等数学
  19. uniapp(js)处理过去时间对比现在时间的时间差如几分钟前,几小时前,几个月前(仿照cnode社区)
  20. 开个代理记账公司是否有前途

热门文章

  1. 0.QObject的数据存储
  2. Set OPENCV_ENABLE_NONFREE CMake option and rebuild the library in function解决方法
  3. 记录一下CUDA-opencv联合编程
  4. java继承的知识点_Java知识点梳理——继承
  5. 进阶必备:素数筛法(欧拉,埃氏筛法)
  6. Logstash inputs配置
  7. SQL Server 中@@IDENTITY的用法
  8. 电子工程师必须知道的10个网站 !!!
  9. .Net 2.0 事件机制,更简化了...
  10. jsp基础、el技术、jstl标签、javaEE的开发模式