About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Oct

    19

    作为一名纯粹的 AS3 开发者,想要使用第三方平台的功能,总是会涉及到原生的 SDK  觉的很是坑爹,因为很少有平台会直接提供 ANE 文件给 AS3 开发者使用(尽管 GitHub 上有很多开源项目可以下载到源文件,但因为 ANE 太旧不支持 64 位或第三方的 SDK 太旧需要重新替换)。如果已经了解了安卓 ANE 的制作流程,那么基本上也就了解 iOS ANE 的制作流程了,但却又与安卓的 ANE 有很大的不同之处。

    最大的不同之处就是 Xcode 和 OC。如果已经了解了 Flash Builder(简称 FB),那么既便是零基础 ADT Bundle 用户第一次安装也会觉的有点眼熟,毕竟它们都是基于 eclipse 这个环境,知道类文件放在什么位置,第三方库从什么位置引入,并且语法也非常类似,有着相同的“包”的概念。但如果是零基础的 Xcode 用户,第一次安装后那么基本上就傻眼了——

    原本想系统的学习一边 Xcode IDE 环境,在网上找了一遍相关的书籍,基本上都在讲 OC 和 Swift 语言,找不到 Xcode 相关的书籍,唯一能够找到一本中文的书籍是古老的《Xcode 3 高级编程》的译本,看了一天连第3章都没看完,我可耻的放弃了,一是资料过于陈旧, Xcode 6/7 相比之下界面已经有了非常大的变化,二是译者很多口语用的好像都是台湾人的口语,并不是大陆口语习惯(有些句子我甚至读不通),实在看不下去了

    然后直接搜 iOS ANE 相关的教程,基本上找到的还是官方的一些制作教程,都是无关乎 Xcode 和 OC 基础的,搞的 AIR 开发者好像人人都熟悉 Xcode 和 OC 一样,也有非官方的个人博客贴子比如《IOS ANE的坑爹之路(一)》,但是都一样,并没有什么卵用,里面提到了一个“所谓的”有用工具“ANE的XCode模板”,关于它的简单介绍就是“可以省去打包 ANE 手动操作的过程”。我试了在 Xcode7 上运行脚本安装失败了,我猜它是“太老”了,我又重新下载了 Xcode 6.4 版本,再安装,还是失败,我猜它是“太老太老”了……我已经没有耐性再去下载一个更老的版本去测试这个“所谓的”有用工具了,因为在我的心里面已经将它定位成垃圾了,不就是省了一个手动打包的过程么,我在学习制作安卓 ANE 时就已经撑握了。

    对于我的挑战就是成功的制作出静态库 .a 文件发送到 Windows 下。还是直接进入实践了,于是从 Google 开始第一步搜索,如何制作一个 OC 的静态库,代码放在什么位置,啊,为什么没有包的概念,那让我填个公司或组织的反向定义做什么,等等等(不需要等到几年之后再来看这篇贴子,我现在就已经觉的很幼稚了)。同时新建了好几个项目,一边对比一边设置,不管怎么样,终于成功的制作出了 .a 文件,于是便开始了左右开弓,不断的清理,不断的生成,不断的发送到 Windows,不断的打包 ANE,不断的调试,不断的报错,不断的 Google,不断的清理,不断的生成,不断的发送到 Windows,不断的打包 ANE,不断的调试,不断的报错,不断的 Google……幸好买的是两台笔记本可以同时左右开弓操作,如果是两个台机在两个桌子跑来跑去我估计我真的会疯掉的。

    折腾了将近一天之后,当编译器的进度条终于到达 100% 没有报错时,我真想高呼一声 Google 万岁!~

    一篇通用的 64 位 ANE 制作教程《64-bit requirements for iOS apps》。

    PS:XCode 版本必须大于6, iOS SDK 版本必须大于 8,AIR SDK 版本必须大于 16.0

    我不得不说 Adobe 是我见过最好的真正面向全球的国际化公司,无论是 Photoshopw、Illustrator、DreamWeaver、Fireworks、Flash、FlashBuilder、Audition、Premiere 等等我下载过的每一个软件,无论图像、视频、动画、编程工具都提供了国际化的语言,软件从界面,到帮助文件,到 API 手册,甚至到每一个版本的更新说明,都提供了中文本地化,再看看 Xcode 和 Android Studio……我只能叹一口气“唉,英文没学好,怪我喽~”。尽管也有人说微软的产品也提供了全中文化的开发环境和全中文的 API 手册,但我更喜欢 Adobe,因为 AS3 在编程语言排行榜的历史上从来没有进过前10 名,最高一次也只到达过 18,大多时候它都在 30 名以后,有时甚至 50 名开外,它是一个何等小众化的编程语言,却提供了全球化的 API 帮助文档,这才是我喜欢它的地方。

    Oct

    13

    iOS ANE 制作过程中的 .a 静态库文件是必须使用 XCode 来编译生成的,所以 OC 相关的基础资料还是要花个几十分钟了解一下。否则既便从 gitHub 上下载到了 ANE 项目源码,也不知道文件放在哪里,想要或多或少修改一下类名或方法名都不知道怎么改,那就比较痛苦了。

    以下这几篇是我觉的看的过程中觉的最简单的 OC 入门资料了。

    1、OC:Clang 编译器编译OC代码(可以忽略不看,只要了解 Clang 是个编译器的名称就可以了)

    2、OC:基本数据类型(粗略看一下,反正每个编程语言的基本数据类型大同小异)

    3、OC:类的定义必看的

    4、OC:成员变量、方法必看的

    5、OC:属性必看的

    6、OC:内存管理粗略看一下)

    7、OC:集合类(暂时没看,将来如果有一天我学 OC 的话一定会看的)

    PS:不过我想不会有那一天了  ,因为我只想学 swift 。

    以下这两篇和上面的差不多,比较容易看懂的入门级 OC 资料。

    1、iOS开发系列—Objective-C之基础概览

    2、iOS开发系列--Objective-C之类和对象

    ……(省略了很多)

    3、iOS开发系列—Objective-C之Foundation框架

    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 选择和环境配置上不需要来回折腾浪费时间了。

    Oct

    8

    一篇自己觉的最简单的 ANE 教程,与其说是教程,不如说它是制作的流程,很简单,又是 ZERO 写的,值得收藏一下。

    了解了流程后就会觉的 ANE 的制作过程其实就是简单到弱爆了。觉的 ANE 制作难的原因我想是因为 Flash 平台开发者对原生开发环境和原生语言的不熟悉。比如 ADT-Bundle 与 XCODE ,Java 与 Objective-C 语言。其中语言部份大多能在 GitHub 上找类似代码或模版文件(安卓可能更容易些,因为存在类似 JD-GUI 这样的反编译工具可以查看别人的源代码)。

    按着这个教程成功的制作出了第一个安卓 ANE 程序,大多时间其实是花在了 ADT-Bundle 这个工具(包括 Android Studio)以及它们所涉及的 SDK 部份的了解上。

    More...

    Oct

    5

    安卓 ANE 制作资料备忘录(一):安卓开发环境搭建》贴子中写到了 ADT-Bundle,但现在安卓官方已经去掉了它的支持和链接,所以必须使用迅雷才能下载。

    安卓官方现在只支持 Android Studio 并提供了下载,但这个东西并不友好,甚至可以说是极不友好。一篇如何使用 Android Studio 制作 ANE 的教程说明:《How to build ANE in Android Studio》。收藏一下。

    More...

    Oct

    4

    为什么 AIR SDK 生成的安卓应用包名默认会自动添加 air. 前缀呢?这里有一篇 ZERO 写的说明:[安卓开发整理]——包名,好资料收藏一下。

    More...

    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

    Mar

    27

    <android>
            <manifestAdditions><![CDATA[
                <manifest android:installLocation="auto">

                    <!-- 防止APP打开时移动设备自动进入休眠状态 -->
                    <uses-permission android:name="android.permission.WAKE_LOCK" />
                    <uses-permission android:name="android.permission.WRITE_SETTINGS" />

                    <!-- 百度与AdMob所需权限 -->
                    <uses-permission android:name="android.permission.INTERNET"/>
                    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
                    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
                    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
                    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
                    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
                    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>

                     <application>
                            <meta-data     android:name="com.google.android.gms.version"
                                           android:value="@integer/google_play_services_version" />
                                 <activity     android:name="com.google.android.gms.ads.AdActivity" 
                                               android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

                                 <activity android:name="com.baidu.mobads.AppActivity" android:configChanges="keyboard|keyboardHidden|orientation"/>
                     </application>

                </manifest>
            ]]></manifestAdditions>
        </android>

    Jan

    5

    官方指南链接:《iTunes Connect 的 Game Center 配置指南》中文版

    Adobe GameCenter ANE 使用指南:《使用针对 iOS 的 GameCenter Adobe AIR 原生扩展》中文版

    Adobe GameCenter ANE 使用指南:使用 Game Kit AIR 原生扩展创建 iOS 实时多人游戏》中文版

    github 上的一个开源项目 《Air Native Extension for Game Center integration on iOS》(纯个人推荐)

    github 上的一个开源项目 《ANE-GameCenter

    Oct

    7

    1、baidu-ane-for-ios-and-android

    链接:https://github.com/lilili87222/baidu-ane-for-ios-and-android

    官网:http://union.baidu.com/

    备注:如果 APP 的用户主要针对国内,首选了吧。

    2、admob-for-flash

    链接:https://github.com/lilili87222/admob-for-flash

    官网:http://www.google.cn/ads/admob/

    备注:这个官网其实就是中文官网(但服务器肯定不在国内的,所以访问速度很慢),如果 APP 的用户主要针对的是国外用户的话,那加入吧。

    3、as3-air-ad-network-framework

    链接:https://github.com/lilili87222/as3-air-ad-network-framework

    备注:这是针对主流广告平台 ANE 的管理类,类似于广告聚合平台的功能,但它不需要像聚合平台那样需要通过服务器来配置每个广告平台的配置比率与轮播速度等等,而是直接在 APP 中本地化管理每个广告平台的配置比率与轮播速度等。

    4、其它

    如果想要动态的配置每个广告平台的投放比率,尝试不同广告平台的收益情况、云测试等等,可以尝试广告聚合平台(聚合平台的缺点是官方提供的 ANE 往往比较大,而且还大的不一般 - -)。