从另一个应用程序安装超过250mb的apk

时间:2014-10-02 09:03:03

标签: java android actionscript-3 air apk

问题

我正在使用以下java代码来简单地调用安装对话框,并在sd卡上安装本地apk文件:

             Intent intent = new Intent();
             intent.setAction(Intent.ACTION_VIEW);
             intent.setDataAndType(Uri.parse("file://" + args[0].getAsString()), "application/vnd.android.package-archive");

             context.getActivity().startActivity(intent);

当我使用apk文件时,一切都会好起来的。在其他情况下250mb会崩溃。 问题是我完全需要这个> 250mb apk的每个部分都没有办法用扩展包拆分它。那么这个限制是否有任何解决方法?

清单

<android>
    <manifestAdditions><![CDATA[<manifest android:installLocation="auto">
    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-feature android:name="android.hardware.microphone" android:required="false" />
    <application android:hardwareAccelerated="true" />
    <application android:debuggable="true"/>
    <application>
        <activity android:name="android.intent.action.VIEW">
            <intent-filter >
                <action android:name="android.intent.action.MAIN" />
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
    <uses-permission android:name="android.permission.RESTART_PACKAGES"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-feature android:required="true" android:name="android.hardware.touchscreen.multitouch" />
</manifest>]]></manifestAdditions>
  </android>

同时

也许你需要知道我的应用程序是由AS3用Adobe Air编写的,并使用这个java代码作为本机扩展来执行apk文件。但请确保它没有必要,您将使用纯Java应用程序遇到同样的问题。

1 个答案:

答案 0 :(得分:0)

每个Android驱动的设备都有不同的系统可用RAM,因此为每个应用程序提供不同的堆限制。您可以调用getMemoryClass()来估算应用程序的可用堆(以兆字节为单位)。如果您的应用尝试分配的内存超过此处可用内存,则会收到OutOfMemoryError。

https://developer.android.com/training/articles/memory.html