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. 5个你不知道的HTML5的接口

    原文地址:5 HTML5 APIs You Didn't Know Existed 原文日期: 2010年09月27日 翻译日期: 2013年8月7日 当人们看到或者说出"HTML5&quo ...

  2. 《java入门第一季》之集合toString源码解析

    代码: Collection c = new ArrayList(); c.add("hello"); c.add("world"); c.add(" ...

  3. Socket编程实践(9) --套接字IO超时设置方法

    引:超时设置3种方案 1. alarm超时设置方法 //代码实现: 这种方式较少用 void sigHandlerForSigAlrm(int signo) { return ; } signal(S ...

  4. 【IOS 开发】Object-C 入门 Xcode 环境详解

    作者 : 韩曙亮 转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965 一. Xcode 环境安装 与 工程创建 1. ...

  5. 理解WebKit和Chromium: Android 4.4 上的Chromium WebView

    转载请注明原文地址:http://blog.csdn.net/milado_nju ## 概述 相信读者已经注意到了,在最新的Android 4.4 Kitkat版本中,原本基于Android Web ...

  6. Java模式之模板方法模式

    当我们遇到的业务逻辑具有大致相同的方式的时候,我们也许就该将这个业务逻辑抽象出来,采用模板方法,来进行封装我们的代码,提高代码的重用性,以及可维护性.下面是我的一个复习用的案例: 第一步:我们需要一个 ...

  7. [WinForm]dataGridView动态加载以本地图片显示列

    增加一个图片列: C# private void btnQuery_Click(object sender, EventArgs e) { StringBuilder sb=new StringBui ...

  8. log4j的一些配置

    a). 新建Java Project>>新建package>>新建java类: b). import jar包(一个就够),这里我用的是log4j-1.2.14.jar, c) ...

  9. Android遍历获取指定目录的文件

    我们经常遇到一个问题,需要获取指定目录的某些扩展名的文件,并将其存在Vector中,怎么来实现呢? // 获取当前目录下所有的mp4文件 public static Vector<String& ...

  10. Ubuntu14.04安装Matlab2013a

    source url: http://blog.sina.com.cn/s/blog_ec5021d60102v3ky.html 1. 为方便操作,把Matlab镜像文件(iso)重命名为'Matla ...