Android AIR 学习(一)

时间:2011-06-06作者:klpeng分类:数据结构与算法浏览:5617评论:0

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

首先看看项目结构:

     Android AIR 学习(一)

 

 

应用截图:

Android AIR 学习(一)

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

Android AIR 学习(一)

 

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

 

Android AIR 学习(一)

 

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

 

Android AIR 学习(一)

 

      首先跟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>

打赏
文章版权声明:除非注明,否则均为彭超的博客原创文章,转载或复制请以超链接形式并注明出处。
相关推荐

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

猜你喜欢