Android移动开发的几种方式-程序员宅基地

技术标签: Android开发  React Native  Android App开发方式  RN开发  

目录

1.Android App开发方式

1.1 Native App (原生开发)

1.2 Web App

1.3 Hybrid App (混合开发)

1.4 JavaScript解析为Native

1.4.1 React Native(RN开发)

1.4.2 Weex

1.4.3 原理

1.5 CrossApp(C++开发)

1.5.1 Qt App

1.5.2 CrossApp

1.6 Google App Inventor

1.7 Xamarin(C#开发)


1.Android App开发方式

1.1 Native App (原生开发)

使用Java、C、C++进行开发App称之为Native App;

1.2 Web App

Web App就是使用前端技术(Html+CSS+JSS)开发的Web网站,然后转换工具转化成App,其实就是使用Android的浏览器(Webkit)访问Web网站;

优点:
开发成本低,周期短,兼容多平台,而且更新迭代只需修改服务器端,维护方便,如果只是作个人博客、宣传使用可以;

缺点:

用户体验性差,消息推送不及时,调用本地文件系统难,不能调用手机硬件;

有名的框架:

jQuery Mobile:是一个基于Html5的前端开发框架,主要创建移动Web应用应用于手机和智能电脑;

Bootstrap:是Twitter推出的一个使用Html+JS+CSS的前端开发工具包;

MUI:MUI是一套前端框架,由DCLOUD公司研发而成,MUI不依赖任何第三方JS库,MUI以iOS平台UI为基础,补充部分Android平台
             特有的UI控件;

1.3 Hybrid App (混合开发)

HyBrid App是介于webapp和NativeApp之间,使用Native开发,并且使用WebView访问网站,兼容了NativeApp和WebApp的优点;

主要使用Android WebView的相关可以参考:WebView详解

ebView,PhoneGap、Apache Cordova

 1.PhoneGap是一个采用HTML,CSS和JavaScript的技术,创建移动跨平台移动应用程序的快速开发平台。

 2.salama:Salama ybrid SDK提供了一个JavaScript库,一个Native库;

1.4 JavaScript解析为Native

1.4.1 React Native(RN开发)

React是Facebook开源的一个JavaScript库;

React Native(简称RN)是Facebook开源的跨平台移动移动应用开发框架,是在React框架在移动开发的衍生物,目前支持iOS和Android;

1.4.2 Weex

Weex是阿里巴巴开源的一个基于Vue(JS框架)语法的移动应用开发框架,使用同一套代码可以在Android、iOS和web平台使用;

官网:http://weex.apache.org/cn/guide/

1.4.3 原理

都是通过中间工具把js文件执行过程过程中的各种命令发送到Native端进行执行;

React Native是使用React native bridge把通过React框架编写的编码发送到Native端进行执行;

Weex是使用JS bundle把通过Vue框架编写的编码发送到Native端进行执行;

Weex 表面上是一个客户端技术,但实际上它串联起了从本地开发、云端部署到分发的整个链路。开发者首先可在本地像编写 web 页面一样编写一个 app 的界面,然后通过命令行工具将之编译成一段 JavaScript 代码,生成一个 Weex 的 JS bundle;同时,开发者可以将生成的 JS bundle 部署至云端,然后通过网络请求或预下发的方式加载至用户的移动应用客户端;在移动应用客户端里,Weex SDK 会准备好一个 JavaScript 执行环境,并且在用户打开一个 Weex 页面时在这个执行环境中执行相应的 JS bundle,并将执行过程中产生的各种命令发送到 native 端进行界面渲染、数据存储、网络通信、调用设备功能及用户交互响应等功能;同时,如果用户希望使用浏览器访问这个界面,那么他可以在浏览器里打开一个相同的 web 页面,这个页面和移动应用使用相同的页面源代码,但被编译成适合Web展示的JS Bundle,通过浏览器里的 JavaScript 引擎及 Weex SDK 运行起来的。

How it works

 

1.5 CrossApp(C++开发)

1.5.1 Qt App

Qt:是一个跨平台C++图形用户界面应用程序开发框架;

Qt App是Qt提供了 Qt for Mobile App Develop来使用C++开发手机App,所以跨平台在Windows、Android、iOS部署应用程序;

1.5.2 CrossApp

CrossApp是9秒社团的一款完全免费、开源、跨平台的移动应哟开发引擎,基于MIT开源协议,基于OpenGL ES 2.0,采用MVC框架模式;

官方网站:http://crossapp.9miao.com/

1.6 Google App Inventor

Google App Inventor是Google推出一个直观的可视化编程环境,允许每个人 - 甚至是儿童 - 为智能手机和平板电脑构建功能齐全的应用程序。适合通过编码激发智力和创造力;

官方网站:http://appinventor.mit.edu/explore/

开发工具:http://ai2.appinventor.mit.edu/

1.7 Xamarin(C#开发)

Xamarin.Forms 是一个用C#语言开发跨平台应用的集成开发环境,允许开发人员有效创建可跨 iOS、Android、通用 Windows 平台应用共享的本机用户界面布局。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/niuba123456/article/details/81814309

智能推荐

量化投资之工具篇一:Backtrader从入门到精通(7)-Indicator类源代码解读(2)_dst[i] = math.fsum(src[i - period + 1:i + 1]) / pe-程序员宅基地

文章浏览阅读6.4k次,点赞20次,收藏54次。接上一篇继续。系统内置Indicator的介绍Backtrader提供了很多内置的Indicator,了解这些Indicator对我们自定义指标、理解现有指标以及制定策略具有重要作用。基本操作类Backtrader提供了很多基本操作类,作为定义其他指标的基准。先看PeriodN,这个类是所有需要使用周期进行计算指标(例如移动平均)的基类:class PeriodN(Indicator): ''' Base class for indicators which take a per_dst[i] = math.fsum(src[i - period + 1:i + 1]) / period indexerror: array ass

N76E003使用syn6288_n76e003 开发环境-程序员宅基地

文章浏览阅读312次。代码如下:/*---------------------------------------------------------------------------------------------------------*//* *//* Copyright(c) 2015 Nuvoton T_n76e003 开发环境

转载:Ubuntu16.04安装视觉SLAM环境(g2o)-程序员宅基地

文章浏览阅读102次。原文链接https://www.cnblogs.com/ambition921009/p/10551959.html1、首先在github上下载g2o图优化库git clone https://github.com/RainerKuemmerle/g2o.git2、运行安装以下依赖库sudo apt-get install libcholmod3.0.6sudo apt-get ...

2021最全大数据学习路线(建议收藏)_大数据先学数学还是先学编程-程序员宅基地

文章浏览阅读9.2w次,点赞895次,收藏6.5k次。大数据是未来的趋势,在数字化转型时代,把握大数据是关键的!_大数据先学数学还是先学编程

Mybatis中使用list集合或者数组array作为查询参数,进行查询是foreach标签中的collection怎么写?_mybatisplus根据list集合查询参数-程序员宅基地

文章浏览阅读1.3k次。一直用的的mybatis进行查询数据,对于有些内容容易忘记,这里整理一下,如果有纰漏请指正!先上简单的代码<select id="getUsernameList" parameterType="java.util.List" resultType="java.lang.String"> select username from sys_user su where su.user_id in <f._mybatisplus根据list集合查询参数

few-shot learning 小样本学习---综述_[7] wang y, yao q. few-shot learning: a survey[j].-程序员宅基地

文章浏览阅读8k次,点赞3次,收藏49次。小样本学习(Few-shot Learning)综述 (出自阿里巴巴团队2019年4月)Few-shot Learning: A Survey YAQING WANG1,2 , QUANMING YAO 2019_[7] wang y, yao q. few-shot learning: a survey[j]. 2019.

随便推点

scrapy实践二(selenium爬取腾讯漫画【失败】)-程序员宅基地

文章浏览阅读544次。前言一个月前曾学习过爬取腾讯动漫全站的示例代码,现在再用scrapy尝试过程新建spider爬虫编写普通selenium爬虫爬取漫画观察网页本次目标是爬取热门排行下的漫画右键检查可以发现漫画标题和链接可以轻松获取(前提是用selenium)一步from selenium import webdriverfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.common.by i

根据面要素图层迭代出面要素批量裁切(掩膜提取)影像_迭代要素 批量掩膜-程序员宅基地

文章浏览阅读2.8k次。看了虾神的文章,大数据之:影像提取中深度学习样本库获取的思考,http://blog.csdn.net/hailiannanhai/article/details/78130042。忍不住自己要试试。下面就写一下试试的过程,用一个矢量要素图层(包含多个面要素),一副影像为基础,用迭代做裁切,循环裁切出一幅一幅的影像。模型图如下所示。左边要素为面矢量要素层,里面含有多个面要素_迭代要素 批量掩膜

(五)QString和数字的转换_数字转qstring-程序员宅基地

文章浏览阅读1.4w次,点赞7次,收藏35次。1.QString转数字QString类提供了非常方便的数字类型转换,包括常用的int float double等,也包括不常用的long long等,具体转换如下: QString string = "1"; int int_string = string.toInt();//int类型 long long_string = string.toLong();//long float float_string = string.toFloat();//float s_数字转qstring

数据挖掘工程师的基本职责。_数据挖掘工程师的能力-程序员宅基地

文章浏览阅读1.7k次。转载自品略图书馆http://www.pinlue.com/article/2020/03/1707/2210031765835.html数据挖掘工程师负责科技数据挖掘算法模型的构建、应用、评测、报告。下面是第一范文网小编为您精心整理的数据挖掘工程师的基本职责。  数据挖掘工程师的基本职责1  职责:  1、参与K12教育行业大数据分析、大数据处理、数据挖掘等系统的设计和开..._数据挖掘工程师的能力

【C++ STL应用与实现】23: 如何使用std::mem_fn (since C++11)_aux_source_directory called with incorrect-程序员宅基地

文章浏览阅读2w次,点赞9次,收藏20次。本文总结了STL中函数适配器:`mem_fn`系列函数的用法,它们是:`mem_fun (c++98)`, `mem_fun_ref (c++98)`, `mem_fn (c++11)`. 文中给出了它们各自的使用范围及代码示例,提到了mem_fn的使用限制,使用bind来解决这个限制。_aux_source_directory called with incorrect

hive创建表和增加表分区的两种方式_hive表增加分区-程序员宅基地

文章浏览阅读3.5w次,点赞3次,收藏40次。hive表增加分区的两种方式第一种方式:load data local inpath注意点:1.必须是本地文件,不能是集群上的文件2.文件路径中的变量如果无法替换,可以把单引号换成双引号,一般双引号总是没问题的3.hive库在配置的时候有一个hdfs基础路径,用这种方式创建的表时可以不指定hdfs路径,导入数据后会自然在“hdfs基础路径/表名/”下生成相应的分区文件夹4.用desc ..._hive表增加分区

推荐文章

热门文章

相关标签