为啥国内突然冒出很多Hybrid混合移动应用开发框架

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥国内突然冒出很多Hybrid混合移动应用开发框架相关的知识,希望对你有一定的参考价值。

参考技术A

为什么国内突然冒出很多Hybrid混合移动应用开发框架

1、维护两套(iosandroid,甚至是wp)应用太麻烦了,时间成本,人力成本相对混合框架来说太高
2、对于小公司,并没有ios或者android程式设计师,但是web程式设计师肯定是有的。所以因为成本或者别的原因,没有招ios和android程式设计师,那么最好的解决办法就是Hybrid

Hybrid App、Web App、Native App,哪一种模式会成为App开发主流?下面phonegap100我与您一起分析为什么Native和Web过时了,企业级移动开发开始用Hybrid App

随着html5被过度热炒和实际开发中遇到的效能以及体验问题,Web App逐渐势弱。但是Native App开发难度大、成本高、周期长等问题突出,特别是App不断推陈出新,开发一个App的成本或许可以接受,但是维护一个Native App更新的成本则成了跨不过的悬崖。最终开发者和企业发现Hybrid App,这种既有跨平台开发周期短、成本低的基因,又能发挥Native App体验和效能的优势,Hybrid App混合式移动应用开发逐渐成为企业移动开发的首选。

android 五大应用开发框架是什么?

android应用开发框架是 Application Framework. 其系统架构由5部分组成,分别是:Linux Kernel、Android Runtime、Libraries、Application Framework、Applications。

1.Linux Kernel

2.Android Runtime

3.Libraries

4.Application Framework

5.Applications

andbase框架:

1.andbase中包含了大量的开发常用手段。

如网路下载,多执行绪与执行绪池的管理,资料库ORM,图片快取管理,图片档案下载上传,Http请求工具,常用工具类(字串,日期,档案处理,图片处理工具类等),能够使您的应用在团队开发中减少冗余程式码,很大的提高了程式码的维护性与开发高效性,能很好的规避由于开发疏忽而导致常犯的错误。

2.andbase封装了大量的常用控制元件。

如list分页,下拉重新整理,图片轮播,表格,多执行绪下载器,侧边栏,图片上传,轮子选择,图表,Tab滑动,日历选择器等。

3.强大的AbActivity,您没有理由不继承它。

继承它你能够获得一个简单强大可设定的操作栏,以及一系列的简单呼叫,如弹出框,提示框,进度框,副操作栏等。

4.提供效率较高图片快取管理策略,使记忆体大幅度节省,利用率提高,效率提高。

程式中要管理大量的图片资源,andbase提供简单的方法,几步完成下载与显示,并支援缩放,裁剪,快取功能。

5.封装了大量常见工具类。

包括日期,字元,档案,图片等各种处理函式, 多而全。

6.用andbase大量减少handler的使用,而采用回拨函式,程式码更整洁。

handler会产生大量程式码,并且不好维护,andbase对handler进行了封装。

7.简单轻量支援注解自动建表的ORM框架(支援一/多对多的关联操作)。

写sql,建表,工作量大,andbase提供更傻瓜非同步增删改查工具类。

8.非同步请求框架,网路请求标准化,支援档案上传下载,get,post,进度显示。

如何从零开始搭建一个javaweb企业级应用开发框架

把maven专案转换为java web专案结构非常的简单,按如下的步骤操作即可:
1)在main目录下,新增webapp目录。
2)在webapp目录下,新增WEB-INF目录。
3)在WEB-INF目录下,新增web.xml档案。
按照上面三步操作完成以后,会出现IDEA给一个提示,点选configure按钮,会看到一个确认框,单击ok,按钮就可以把当前专案变成web专案。

关于JAVAweb的框架,现在大多数无非都是基于SSH(Spring,Struts2/SpringMVC和Hibernate)或者SSM(Spring,Struts2/SpringMVC和Mybatis)
这些现在大多百度都有教程和Demo,参照着多弄几遍,就会用了,要理解还得反复推敲

:blog.csdn./gebitan505/article/details/44455235/
去看吧

HTML5移动应用开发为什么需要引入前端工程化

总体上应该一样,技术体系都差不多。不过pc需要相容的浏览器更多些,mobile下andorid,ios都是基于webkit,所以相对好些。
移动前端开发可分为:
1、手机网页开发。这部分跟web前端开发差别不大,使用的技术都是+css+js。区别为手机浏览器是webkit的天下,pc端是IE的天下。手机网页可以理解成pc网页的缩小版加一些触控特性。因为是在浏览器中进行的网页开发,所有最终程式码具有跨系统平台的特性。
2、app前端开发。使用的技术也是+css+js,但它需要基于PhoneGap等开发平台呼叫手机核心功能介面(包括地理定位,加速器,联络人,声音和振动等)模拟native app,这部分跟web前端开发完全不同。最终程式码释出要分别编译成各系统平台的app。

安卓移动端混合开发(Hybrid)入门

环境和工具

Android SDK

[NodeJS && Cordova]

JDK

[ANT || Maven || gradle]

[Eclipse && ADT]

Android StduioWebStorm

bootstrapjQueryjQuery-mobileVue.jsangularjsHTMLCSS


安卓SDK

离线安装

    直接从移动硬盘上拷贝,或别人电脑上拷贝一份SDK过来,下面是联网下载安装需要翻墙才能安装

 

在线安装

SDK Manager

    Android SDK提供了开发Android应用程序所需的API库和构建、测试和调试Android应用程序所需的开发工具,打开以下网址进行下载SDK Manager

http://developer.android.com/sdk/index.html


设置国内镜像

Tools > Options

安卓移动端混合开发(Hybrid)入门


必要安装项

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

....

下面类似,我们只需要安装到Android 4.0即可,再往写不需要再安装了,因为Android4.0以下市场占用率不足5%,所以没有必要再去兼容

下面是Android Studio中创建android工程时候的提示,可以看出^-^

安卓移动端混合开发(Hybrid)入门

环境变量

ANDROID_HOME=xxxx

PATH=%PATH%;%ANDROID_HOME%\SDK\tools;%ANDROID_HOME%\SDK\platform-tools

模拟器

推荐安装genymotion,此模拟器安装需要翻墙网络,推荐使用XX-Net方式安装,需要进行注册登记。

https://www.genymotion.com/

 

当然有条件还是使用真机进行测试,模拟器的速度肯定是没法和真机进行媲美的

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

混合开发(HyBrid)环境搭建

    HyBrid即混合了原生和web的开发。使用cordova可以调用底层原生能力例如你可以通过cordova在页面中通过js直接调用原生的拍照、拨号等接口。cordova是什么具体请参见:

https://zh.wikipedia.org/wiki/Adobe_PhoneGap

基于cordova构建webapp,屏蔽了底层os的差异让web具备访问原生接口的能力,选择cordova主要还是基于开发成本和产出比考虑,基本能开发web的人都能立马上手开发,门槛比较低。

JAVA环境

安装介质

    Oracle官网下载

    http://www.oracle.com/technetwork/java/javase/archive-139210.html

 

注意事项

    cordova4.x.x版本以上的工程需要安装JDK1.8以上版本

http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

NodeJS

 

注意事项

    安装一路next,不要修改默认安装路径!!!

检查安装

    验证下nodejs是否安装好:

 

安卓移动端混合开发(Hybrid)入门

查看下npm的版本信息

 

安卓移动端混合开发(Hybrid)入门

 

 

Cordova

安装

在CMD下执行

npm install -g cordova@6.4.0

 

验证安装

 

安卓移动端混合开发(Hybrid)入门


Web环境

 

浏览器

安装介质

卸载本地已安装的chrome浏览器,使用下面的版本进行安装

55.0.2857.0_chrome32_canary_windows_installer.exe

 

配置参数

1) 在本地创建一个目录,例如d:/android/chrome-data

2) 给chrome快捷方式添加下面三个参数(chrome.exe后面有空格)

 

--disable-web-security --allow-file-access-from-files --user-data-dir=d:/android/chrome-data

--ignore-certificate-errors

 

 

 

其他参数参考说明

https://www.cnblogs.com/x_wukong/p/4910692.html


构建工具

Gradle

gradle-2.14.1-all.zip

安装

解压至某个目录

D:/android/gradle/gradle-2.14.1

配置

PATH=%PATH%;D:/android/gradle/gradle-2.14.1/bin

 

验证安装

 

安卓移动端混合开发(Hybrid)入门

开发简介

创建工程

$ cordova create app1 com.example.hello HelloWorld --template <npm-package-name>

$ cordova create app1 com.example.hello HelloWorld --template <git-remote-url>

$ cordova create app1 com.example.hello HelloWorld --template <path-to-template>

 

hello为工程目录名称

com.example.hello包名

HelloWorld为工程名称

--template 为模板

另外通过webstorm使用cordova模板也可轻松创建工程模板

 

 

安卓移动端混合开发(Hybrid)入门

创建平台

cd  app1

cordova platform add android

 

 

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

 

 

 

 

其他平台

cordova platform add ios

cordova platform add wp7

cordova platform add wp8

cordova platform add blackberry10

同时,也可使用以下命令控制所生成实例的 Android SDK 运行环境

cordova platform add android@****  (版本号)

 

编译构建

cordova build android

等价于

cordova prepare android --主要是做一些资源文件的拷贝,拷贝到构建目录

cordova compile android --编译打包

cordova build android --release 打包apk

安装apk到手机

 

非混合开发构建

gradle assembleRelease

 

安卓移动端混合开发(Hybrid)入门

 

......

 

安卓移动端混合开发(Hybrid)入门

 

备注:

如果构建的时候很慢,可能是下载gradle安装包和项目依赖(主要是jar)比较慢所致,解决办法

 

1. 找到GradleBuilder.js,找到下面的代码

 

安卓移动端混合开发(Hybrid)入门

红色部分替换成你本地已经下载好的(或是从别人那儿拷贝过来的) gradle的zip包的本地路径 例如: file\:///D:/java/gradle/gradle-2.14.1-all.zip

 

2. 找到build.gradle 将下面的内容替换下,因为的maven仓库很慢,所以我们替换成国内

的阿里云镜像.

mavenCentral()

jcenter()

全部替换成

maven { url "http://maven.aliyun.com/nexus/content/groups/public" }


安装

配置adb

PATH=%PATH%;D:\android\SDK\platform-tools

测试是否可以连接手机

adb shell

 

安卓移动端混合开发(Hybrid)入门

 

安装apk

cd D:\codes\mobileapps\cms\shanxi2\demo\platforms\android\build\outputs\apk

adb install -r android-release.apk

 

 

安卓移动端混合开发(Hybrid)入门

 

测试

浏览器本地测试

此测试只针对不调用原生能力(包括页面调用cordova插件)的页面进行测试

 

方法为在工程根目录下执行以下命令

cordova serve android

 

 

安卓移动端混合开发(Hybrid)入门

 

 

安卓移动端混合开发(Hybrid)入门

安卓移动端混合开发(Hybrid)入门

 

 

 

备注:

Chrome浏览器必须禁用跨域选项,否则页面中调用的任何http请求都会报错

具体方法为找到找到桌面的上chrome快捷方法,右键属性在"目标"里面加上如下配置

 

--disable-web-security

--user-data-dir

跨域参考以下文章:

http://www.cnblogs.com/laden666666/p/5544572.html

 

访问本地文件

--allow-file-access-from-files

安卓移动端混合开发(Hybrid)入门


 

模拟器测试

直接讲apk包拖进模拟器进行测试

 

安卓移动端混合开发(Hybrid)入门

 

或则在 build完后执行adb install <apk绝对路径> 进行测试


签名

为什么需要签名?

http://www.360doc.cn/article/2306903_373148270.html

签名的步骤:

https://segmentfault.com/a/1190000005177715

 

打包apk后进行签名

https://www.2cto.com/kf/201504/388618.html

生成证书

keytool -genkey -v -keystore stone.keystore -alias stone -keyalg RSA -keysize 2048 -validity 10000

给apk签名

jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore stone.keystore liveplayback-release-unsigned.apk stone

生成签名文件

给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行。签名就代表着自己的身份(即keystore),多个app可以使用同一个签名。主要目的是为防篡改,也就是如果别人破解了你apk包,修改了里面的文件那么这个apk包就安装不起来了,具体原理请参见"为什么要签名?"

 

keytool -importkeystore -srckeystore cms.keystore -destkeystore cms.keystore -deststoretype pkcs12 -alias cmskey -keyalg RSA -validity 20000

 

keytool是工具名称;

-genkey意味着执行的是生成数字证书操作;

-v表示将生成证书的详细信息打印出来;

-keystore server.keystore 表示证书的文件名; 

-alias server.keystore 表示证书的别名;

-keyalg RSA 生成密钥文件所采用的算法; 

-validity 20000 该数字证书的有效期,单位是天;

输入后会让你输入密码,并回答一些关于你公司和地区的问题,回答完后截屏记录,防止忘记。

 

实际示例:

D:/codes/mobileapps/zhjk/cms/platforms/android>keytool -genkey -v -keystore cms.keystore -alias CMSKEY -keyalg RSA -validity 20000

输入密钥库口令:             

再次输入新口令: 

您的名字与姓氏是什么? 

  [Unknown]:  AILK

您的组织单位名称是什么?                                                      

  [Unknown]:  AILK

您的组织名称是什么? 

  [Unknown]:  AILK

您所在的城市或区域名称是什么?                                        

  [Unknown]:  NANJING

您所在的省/市/自治区名称是什么? 

  [Unknown]:  JIANGSU

该单位的双字母国家/地区代码是什么? 

  [Unknown]:  CHINA

CN=AILK, OU=AILK, O=AILK, L=NANJING, ST=JIANGSU, C=CHINA是否正确?    

  [否]:  Y 

正在为以下对象生成 2,048 位RSA密钥对和自签名证书 (SHA256withRSA) (有效期为 20,000 天):                                                                                                

         CN=AILK, OU=AILK, O=AILK, L=NANJING, ST=JIANGSU, C=CHINA

输入 <CMSKEY> 的密钥口令                                               

        (如果和密钥库口令相同, 按回车): 

[正在存储cms.keystore] 

D:/codes/mobileapps/zhjk/cms/platforms/android>

 

借助Android Studio进行签名

 

按照提示填入各项值即可

编写release-signing.properties

一旦有了server.keystore文件可直接借助gradle构建工具进行自动化签名

 

在项目platforms/android目录下新建release-signing.properties文件,填入

key.store=../../server.keystore

key.alias=server.keystore

key.store.password=*****

key.alias.password=******

 

 

签名后打包

 

cordova build android //打出测试版APK包

cordova build android --release //打出正式发布版APK包

 

命令行下执行 cordova build android --release

 

以上是关于为啥国内突然冒出很多Hybrid混合移动应用开发框架的主要内容,如果未能解决你的问题,请参考以下文章

汽车上突然出现hybrid啥意思?

安卓移动端混合开发(Hybrid)入门

Web前端的跨平台解决方案,你了解吗?

Web前端的跨平台解决方案,你了解吗?

混合开发Hybrid App的优劣分析

混合 App 打开 H5 调试开关