我们知道,对于IOS系统,AIR是可以添加默认的启动屏的。如Default@2x.png Default.png之类,然后在打开app的时候,会给我们一个显示。然而Android 却没有这样的待遇,按理说,任何一个AIR做的APP 启动的时候,或多或少会出现暂时的黑屏,当然设备越低端黑屏时间越长。但是为啥Adobe就没这样做呢?

先不管这个,我们来看看,为啥说会黑屏。首先来看看AIR 的启动流程

1. 进入Adobe Air的主Activity;

2. 判断是独立运行时还是集成运行时;

3. 如果两种运行时都没有,弹出下载Adobe Air运行时提示框,如果有,则启动运行时;

4. 运行时通过应用配置文件中的content属性(在反编译的AndroidManifest.xml文件中为initialcontent)来加载assets文件夹中的主swf文件;

5. 加载成功,显示到屏幕

即是说,在进入我们制作的内容之前 是会加载AIR运行时的,而加载过程肯定就有一定的时间,那么这段时间用来干嘛呢,好吧Adobe理智的选择了黑屏处理。

下面说说避免这种情况的方法。其实就是在加载运行时的过程中,手动的加载一张图片。然后显示这张图片,从而避免黑屏,达到相对较好的体验效果。

 

首先,用fb4.7打包一个apk,如xx.apk

然后将其用 Apk Manager 反编译  Apk Manager 有解包 和反编译两种解压方式,但这里我们选择反编译,不然的话弄不出values文件夹。

接着找一张.png或者.jpg或者gif格式的图片用来作为启动屏(不过gif的貌似只会显示一帧,再者按照国际惯例还是用png格式的),放置在xx/drawable文件夹下面并命名为launch.png

然后找到xx/res/values/styles.xml。打开这个xml 如下


<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.NoShadow" parent="@android:style/Theme.NoTitleBar">
<item name="android:windowContentOverlay">@null</item>
</style>
</resources>

接着我们在style标签内加上<item name=”android:windowBackground”>@drawable/launch</item>

最后如下


<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.NoShadow" parent="@android:style/Theme.NoTitleBar">
<item name="android:windowBackground">@drawable/lauch</item>
<item name="android:windowContentOverlay">@null</item>
</style>
</resources>

接着我们打开apk manager 依次执行 编译apk  签名apk

最后就可以在手机上看到效果啦,一旦点开应用图标,便立马显示咱们的启动图,从而告别了黑屏时代。

点击下载demo

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Free Web Hosting