1、首先是选型:Cordova+Ionic Framework,调试测试环境是Ripple Emulator.开发环境其实可以随便选,我个人选择了Eclipse,当然Android SDK+ADT也是必须的.

2、安装:在这个js横行的时代,Cordova、IonicFramework、Ripple这三者都可以通过Node.js中的npm安装,非常方便。android SDK和ADT的安装都比较大众,不过Cordova除了npm install还要做一些设置完整文档见其官方文档,Cordova搞定,Ionic就方便了。

3、新建项目:用ionic的指令新建项目,用Cordova添加platform,然后用ripple就可以模拟终端调试,这种方式相对比较方便,不像真正的AVD,那个光启动就要老命了。可以界面整体搞定以后,在启用AVD Emulator测试,这样启动的次数减少,节省时间。

4、说说Ripple的作用,其实hybrid App 的WebApp部分主要是本地页面+远程Restful Json数据,由于普通浏览器有跨域限制,于是乎本地页面无法访问远程服务,于是Ripple先是架一个localhost服务,开放本地文件,其次它把那部分远程需求通过中间代理的方式转发给真正远程服务。之前好像也有一套DNS之类的方法解决这个问题,不过没有工具这么简便易用。

5、补充库,在PCWeb上,一般jQuery可以和AngularJS一起用,不过在ionic前提下,jquery好像和ionic有一定不兼容,而angular.elementopen的jqlite函数也很有限,比如典型的post config用到的$.param(),这个时候就可以用zepto.js取代,轻量级jQ语法兼容库,专为移动打造,且和ionic不会冲突。

6、关于CSRF的问题,由于本地HTML不可能有服务器动态标签,所以使用Ajax请求的CSRF Token传递方法,也就是说通过header传递,这方面angularjs $http的Config提供对应的支持,意味着你不需要每次post的时候还要去读Cookie,这些AngularJS都替你提供横向支持。不过这种支持方法因跨域原因无法在hybridApp中使用,你得用直接的请求来得到csrftoken,然后用angularjs拦截器注入到每个POST请求里面,因为这实际上是异步跨请求的数据依赖,这种依赖很难保证肯定达成,所以最好不要用CRSF机制,这样比较干净一点,毕竟是hybridApp,界面简化以后,可能很少用到用户输入的富文本。

7、关于跨域的Cookie问题,hybrid app的本地脚本和远程服务不在同一个域,意味着无法跨域访问。远程服务的Cookie只能用来它自己从Request数据里面读,本地代码是无法读,当然这个问题,可以通过一些跨域设置来解决,不过那个可能会存在安全问题,之前本地需要读的Cookie数据,可以直接放在返回JSON数据里面,这样就可以实现之前的数据传递了。

8、本地数据缓存问题,hybrid App要达到原生App的体验,则必须有一个SQLite级的东西来用,这就是localStorage或者sessionStorage,Storage目前只能存放字符串,不过比Cookie的解析序列化要方便多了。当然还有写WebDB级的东西来用,我个人觉得其操作没有直接JS数据操作方便。

9、ionic的项目,AVD测试必须用ionic的bulid命令构建、Run命令测试。在Eclipse里面run as是不行的,我估计主要是build的原因。

10、发布前的处理,ionic官方文档GuideBook部分有这个内容,其中少了一条,就是要修改Package Name,这个东西是发布后APK的一个标识性的东西,要改成自己的,其实很简单,新建一个自己产品的com.xxx.xxx的包,把原先的那个移到这个包里面,改一下config就Ok了。

 
 

Android hybrid App项目构建和部分基本开发问题的更多相关文章

  1. 【Gradle】Android Gradle 多项目构建

    Android Gradle 多项目构建 Android 项目区别 Android项目一般分为库项目,应用项目,测试项目,Android Gradle 根据这些项目分别对应3种插件:com.andro ...

  2. Android Hybrid App自动化测试实战讲解(基于python)

    1.Hybrid App自动化测试概要 什么是Hybrid App? Hybrid App(混合模式移动应用)是指介于web-app.native-app这两者之间的app,兼具“Native App ...

  3. android 多模块项目构建一

    项目构建之项目文件搭建: 1.在android studio中new project,如:mydemo,如在D盘下. 2.创建几个module,选择为Library. 3.项目中用到多模块,最好使用动 ...

  4. 《Gradle权威指南》--Android Gradle多项目构建

    No1: Android多项目设置 目录结构: MyProject/ setting.gradle app/ build.gradle libraries/ lib1/ build.gradle li ...

  5. 包括后台的Android美食APP项目开源代码

    项目简介 小食光定位为一款集美食,社交,LBS服务于一体的美食推荐APP.为你发现周边美食的同时提供一个吃货分享的平台. APP截图     功能模块 美食推荐 :提供基础的美食信息查询: 商家推荐  ...

  6. 9个完整android开源app项目

    一.photoup 介绍: photoup 是一款开源的相册类app,主要功能是将本地图片提交到facebook上去,虽然他的功能和facebook的远程服务相关,但是本身是可以被当作一款 相册应用的 ...

  7. Android NDK(一) ndk-build构建工具进行NDK开发

    本文目录 一.androidstudio环境 二.快捷键配置 三.新建项目 四.NDK开发 五.so文件编译 一. androidstudio的环境 在SDK Tools中安装NDK开发环境(File ...

  8. Android NDK(二) CMake构建工具进行NDK开发

    本文目录 一Androidstudio中需要的插件 二项目配置 ①build.gardle配置 ②CMakeLists.txt ③Android和Cpp的代码 ④so文件生成 ⑤so文件的位置 一.A ...

  9. 优化Recorder H5录音:可边录边转码上传服务器,支持微信提供Android IOS Hybrid App源码

    Recorder H5 GitHub开源库随着支持功能的增多,音频转码处理效率渐渐的跟不上需求了,近期抽时间对音频转码部分进行了升级优化,以支持更多实用的功能. 另外IOS的Hybrid App也完成 ...

随机推荐

  1. 关于Java的移位运算符

    /** * 测试移位运算符<br/> * "<<" 左移 : 右侧补0<br/> * ">>" 带符号右移 : ...

  2. Dynamics CRM 导入用户数据错误 could not retrieve salesperson role

    在CRM中通过导入数据的方式创建用户时报下图中的错误,"could not retrieve saleperson role".原因是系统中的自带的salesperson安全角色被 ...

  3. Cocos2D:塔防游戏制作之旅(二)

    一个象牙塔的视图 如果你并不熟悉此类型的游戏,塔防游戏是一个战略游戏,你需要购买和将武装塔放置在战略位置,去阻止一波又一波的敌人到达并摧毁你的基地 每一波敌人都更强,这些更强的对手有着更快的速度和对于 ...

  4. iOS中 UITableViewRowAction tableViewcell编辑状态下的功能 UI技术分享

    * tableView:editActionsForRowAtIndexPath: // 设置滑动删除时显示多个按钮 * UITableViewRowAction // 通过此类创建按钮 * 1. 我 ...

  5. Linux信号实践(4) --可靠信号

    Sigaction #include <signal.h> int sigaction(int signum, const struct sigaction *act, struct si ...

  6. 9.4、Libgdx简单字符输入

    (官网:www.libgdx.cn) 如果应用需要输入一个字符,比如用户名和密码,可以通过简单的对话框实现. 在桌面中使用一个Swing对话框,提示用户输入字符. 在Android中将会打开一个标准的 ...

  7. (NO.00002)iOS游戏精灵战争雏形(四)

    在Xcode打开MainScene,添加初始化代码如下: -(void)didLoadFromCCB{ NSAssert(_sprite1, @"_sprite1 must not nil& ...

  8. 学习pthreads,给线程传递多个参数

    上篇博文中,boss线程给其他线程传递的只有一个参数,那么假如是多个参数呢?怎么传递呢?或许你会有这样的疑问,带着这个疑问,我们进入本文的世界,这里传递多个参数,采用结构体,为什么呢?因为结构体里可以 ...

  9. Pixelmetrix :OTT Media Grinder (OTT TV 质量评价设备)

    有关OTT TV 质量评价方法方面的研究少之又少.国内貌似还几乎没有相关的研究.不过在国外已经找到相关的产品了,翻译了一下产品手册的部分内容,很有参考价值,尤其是其提出的8个指标. 概述 OTT Me ...

  10. 《java入门第一季》之类(String类常见方法小叙)

    String类下面的构造方法和一些常见的方法: /* * 字符串:就是由多个字符组成的一串数据.也可以看成是一个字符数组. * 通过查看API,可以知道 * A:字符串字面值"abc&quo ...