Android AIR 学习(一)

      从Android 2.2开始flash能运行于android平台上了,且Flash Builder 4.5已经完全提供了Flex开发Android应用的环境和sdk类库。一直由于性能问题,一直没往这方面研究。今天抽空看了下,按照网上的一个例子熟悉了下。

首先看看项目结构:

    

 

 

应用截图:

--------------------------------------------------------------------------------------

 

--------------------------------------------------------------------------------------

 

 

--------------------------------------------------------------------------------------

 

 

      首先跟java应用开发环境相似,一个主应用。android里是AndroidManifest.xml里定义的,

 

在Flex中:

    

 

从以上代码可以看出ViewNavigatorApplication就相当于java的application. firstView属性就相当于java的:

<action android:name="android.intent.action.MAIN" />


 <s:navigationContent>是在顶部导航显示一个Home图标,click事件使应用回到第一个视图。

 

navigator是ViewNavigator类型的。

ViewNavigator 组件是由 View 对象集合组成的容器,其中仅最顶部的视图可见且处于活动状态。使用 ViewNavigator 容器控制在手机应用程序的视图之间的导航。ViewNavigatorApplication 容器为整个应用程序自动创建单个 ViewNavigator 容器。

由 View 对象的堆栈控制手机应用程序中的导航。堆栈上的顶部 View 对象定义当前可见视图。ViewNavigator 容器保存堆栈。要更改视图,请将新 View 对象推送至堆栈上,或从堆栈中弹出当前 View 对象。从堆栈返弹出的当前可见 View 对象破坏 View 对象,并将用户返回至堆栈上的前一个视图。

将视图推送到堆栈顶部时,会自动持久保存旧视图的 data 属性。由于当前视图弹出堆栈而重新激活视图时会恢复。新视图通过推送到堆栈而变为活动时,会破坏旧视图的实例。

ViewNavigator 显示可选 ActionBar 控件,其中显示由活动视图定义的上下文信息。活动视图变化时,操作栏会自动更新。

 

目前FlashBuilder支持直接使用USB真机调试,但是如果要生成APK在模拟器上运行,可以使用flashBuilder导出apk方式,不过我安装此方式的apk时遇到“INSTALL_FAILED_INVALID_APK”问题。郁闷几天无果,还好今天又折腾下,最终找到解决方式:

 

设置环境变量:D:/Program Files/Adobe/Adobe Flash Builder 4.5/sdks/4.5.0/bin
在你的项目<bin-debug>下运行以下命令:
adt -package -target apk-emulator -storetype pkcs12 -keystore flex_sec2.p12 EmployeeDirectory.apk EmployeeDirectory-app.xml EmployeeDirectory.swf assets/employees.xml assets/pics
EmployeeDirectory.apk :将要生成的apk包
EmployeeDirectory-app.xml : 自动生成的app配置文件
EmployeeDirectory.swf : 编译生成的swf文件
assets/employees.xml : xml资源文件
assets/pics : 图片资源路径

 

当然首先需要安装android的Air运行环境.

 

此例子在这里有详细介绍和源码。http://www.infoq.com/cn/vendorcontent/show.action?vcr=1277#header_6

 

在源码中我发现个问题:

<s:List id="list" top="0" bottom="0" left="0" right="0"
   dataProvider="{data}" labelField="lastName"
      change="navigator.pushView(EmployeeDetails, list.selectedItem)">
  <!-- 主意这里不是 MobileIconItemRenderer, MobileIconItemRenderer 是旧版用的 -->
  <s:itemRenderer>
   <fx:Component>
    <s:IconItemRenderer label="{data.firstName} {data.lastName}" messageField="title" />
   </fx:Component>
  </s:itemRenderer>
 </s:List>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值