About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Oct

    9

    总共花了 5 天时间,成功的制作出了第一个安卓 ANE 程序(其实它是第二个,第二个才是完整的和第三方平台 SDK 整合的 ANE,第一个只是随便测试制作流程),总共收录了 5 个贴子,每个贴子最后都有附属与补充资料的链接

    1、《安卓 ANE 制作资料备忘录(一):安卓开发环境搭建

    2、《安卓 ANE 制作资料备忘录(二):安卓应用的包名

    3、安卓 ANE 制作资料备忘录(三):使用 Android Studio 制作 ANE

    4、《安卓 ANE 制作资料备忘录(四):最简单的安卓 ANE 制作教程

    5、《安卓 ANE 制作资料备忘录(五):多个 JAR 包合并

    碎碎念

    其中第三个贴子是不需要研究的:推荐使用 ADT-Bundle,因为网上的教程基本上都是基于 ADT-Bundle 的,而不是基于 Android Studio(而且只找到了一篇)。另外 ADT-Bundle 对系统的资源比 Android Studio 要低很多,启动也快的多(顺便还吐槽了一下 Android Studio

    安卓 ANE 制作流程很简单,大多时间是花在了对工具和环境配置熟悉上,仅对这两个 IDE 工具的选择与安装就花了将近 3 天时间因为从来没有使用过这两个工具,所以来回折腾 IDE 和 SDK 的安装、卸载、对比(包括 JDK 的版本)。再加上这些工具基本上被国家防火墙拦截的原因,官方下载时需要使用 VPN,速度也不快不起来(我有“软件洁癖”,担心捆绑软件、病毒之类的,所以只喜欢官方下载)。

    在制作 Admob ANE 时,大大小小的坑不少:

    第一大坑:一个 ANE 程序被调用的类只能涉及到一个 JAR 文件,如果不是做 ANE 程序,可能都不会遇到这个问题,这个坑绕的圈子实在太大(因为一开始的时候完全不知道搜什么内容)。

    第二大坑 ANE 中的资源文件、配置相关的内容小坑(小坑至少有报错的情况可以 Google 一下找到资料,补充对应的资源文件就可以)。

    打包应用程序时出错:
    aapt tool failed:Warning: AndroidManifest.xml already defines versionCode (in http://schemas.android.com/apk/res/android); using existing value in manifest.
    Warning: AndroidManifest.xml already defines versionName (in http://schemas.android.com/apk/res/android); using existing value in manifest.
    Warning: AndroidManifest.xml already defines minSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
    Warning: AndroidManifest.xml already defines targetSdkVersion (in http://schemas.android.com/apk/res/android); using existing value in manifest.
    C:\Users\用户名\AppData\Local\Temp\0bf7cd60-7234-4a95-9eec-7188f5686a84\AndroidManifest.xml:53: error: Error: No resource found that matches the given name (at 'value' with value '@integer/google_play_services_version').

    这种小坑基本上都能在百度和 GOOGLE 上找到:http://www.523326.com/?p=156,还有一些类似中文路径等引起的小坑,都容易解决。

    一些与 ANE 相关的说不清道不明的官方资料:原理、类与接口(我没有看它们,除非想专业搞 ANE 可能了解的必要):

    http://help.adobe.com/zh_CN/air/extensions/air_extensions.pdf

    http://help.adobe.com/zh_CN/air/extensions/WSff7e9115a8550eef64893a0c132502c6a64-8000.html

    下个星期开始研究一下 IOS 版本的 ANE,相信 IOS 的 ANE 程序一定会比安卓的简单的多,至少在 IDE 选择和环境配置上不需要来回折腾浪费时间了。

    Sep

    21

    进 BIOS 设置:找到类似 Intel Virtualization Technology 字样设置为 Enabled,然后重启电脑,卸载后重装就可以了。

    实在忍不住想吐槽几句

    1、Android Studio,安装之前就不能先检测一下是否支持吗?等好几个 G 的东西都安装了再开始报错(真是印证了一句老话:你越是看一个东西不爽,它就越给你搞出点幺蛾子)。

    2、很多的的内容是联机下载安装的,不开 VPN 就慢的等死,居然连 JDK 都要自己独立下载安装,那还不如直接用 Eclipse 自己配置

    3、卸载了之后想重装一下,安卓 SDK 目录不删除、不覆盖、也不提示,居然在后面直接加一个数字 1,一个重复的目录 1 G 多内容,如果多重装几次就要重复的内容多出来好几G,虽说现在硬盘很便宜,但也用不着这么浪费吧?

    Sep

    19

    第一步:JAVA SDK(JDK)的安装。
     
    第二步:下载 ADT-Bundle for Windows(基于 Eclipse 的安卓开发环境,必须使用迅雷下载)。
     
    第三步:安装ADT-Bundle,直接把下载下来的的 zip 文件解压到你需要安装的位置。
     
    第四步:安装 Android SDK。运行解压出来的文件夹里面的 SDK Manager.exe。
    1、也可以运行 eclipse/eclipse.exe 然后通过 Windows -> Android SDK Manager 打开。
    2、勾选上想要开发的目标安卓版本,最好是全部勾上,然后点击 Install Package 按提示 Next,Accept 允许等待安装(一个慢长的过程)。
     
    第五步:配置 Android AVD(虚拟模拟器)
    1、打开 Eclipse(eclipse/eclipse.exe),(运行启动的 eclipse 可能看上去有些不一样,可以通过 windows 把一些常用的窗口,工具条显示出来),然后从 Windows->Android Virtual Device Manger 打开 AVD 管理器。
    2、点击 New 按钮,创建你一新的 AVD,如下图,做了一个简单说明,参数其实都是可以自己随意填的,点击 OK 就行了。 

    配置好的这个 AVD 是会做为安卓应用的默认调试摸拟器,当然也可以配置多个。

     

    第六步:创建一个 Hello World 项目

    通过 File -> New-> Android Application Project,,然后输入 Hello World(项目名字),Next,Finish。

     

    第七步:从运行 Hello World 

    直接点击 Run  Debug(快捷键F11)就可以在你配置的模拟器里运行了。

     

    原文链接http://blog.csdn.net/aizquan/article/details/8974750

    Aug

    7

    前端差不多如下样例代码:

    var jsonData:String = JSON.stringify(data);
    var s:HTTPService = new HTTPService();
        s.url = GlobalUtil.IP + process + "?nocache=" + sessionTime;//加一个时间参数防止缓存
        s.contentType = "application/json;charset=UTF-8";
        s.resultFormat = HTTPService.RESULT_FORMAT_TEXT;
        s.method = "POST";
        s.showBusyCursor = true;
        s.addEventListener(ResultEvent.RESULT, httpResult);
        s.addEventListener(FaultEvent.FAULT, httpFault);  

    发送 JSON 格式的字符串到 JAVA 后台时,JAVA 用获取数据流的方式,直接获取 POST 方法传递到后台的所有数据流,样例代码:

    StringBuffer info new java.lang.StringBuffer();
    InputStream in request.getInputStream();
    BufferedInputStream buf new BufferedInputStream(in);
    byte[] buffer new byte[1024]; 
    int iRead;
    while((iRead buf.read(buffer)) != -1)   
    {
       info.append(new String(buffer,0,iRead,"UTF-8"));
    }