app-inventor:将应用程序安装到SD卡上

时间:2012-07-10 17:38:28

标签: android android-sdcard app-inventor

[编辑以显示提问后一周的当前播放状态]

我深入研究应用程序发明者,因为我的孩子(10岁和12岁)即将获得他们的第一款Android手机,并做了一些拖放式编程(游戏制作者)所以我认为这可能是他们的一个很好的切入点

我现在自己用应用程序发明者编写了5个应用程序,并在我的手机上安装了4个应用程序,我无法安装第5个应用程序,因为我显然是“内存不足”,尽管SD卡上有3个免费赠送电话。

好的,那是怎么回事?设置 - >应用程序 - >管理应用程序不会削​​减它,因为“移动到SD卡”选项在appinventor应用程序上显示为灰色。

我将我的第五个应用程序打包为apk,然后将其解压缩以查看AndroidManifest.xml,但它不是纯文本: - /

不适合我的解决方案:

(1)“等待”

(2)“根你的手机然后......”

(3)“从手机内存中删除一些内容”[解决方法,而不是解决方案]

(4)“购买此产品然后......”


好的,这是一个更新。我还没有设法解决这个问题。这是我到目前为止所做的。

1)我在appinventor中创建了一个名为“test123”的应用程序,带有一个图片和一个按钮(什么都不做)。

2)我创建了一个apk,并将其粘贴在我的网站上:你可以在this link看到它。任何想要下载并在手机上运行的人,只要他们手机上有4个左右的可用内存。据我所知,他们无法将其下载到他们的SD卡上。因此,让我澄清一下,挑战是将链接中的应用程序安装到手机SD卡上。

好的,试试吧!

3)我将apk放在linux盒子上,下载apktool,然后运行

apktool d test123.apk

经过一段时间的讨论,我现在有一个目录test123。

4)我移动到目录test123,在那里我找到了一个文件AndroidManifest.xml。我编辑了这个文件;前几行是

<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="3" android:versionName="1.5" package="appinventor.ai_************.test123"
  xmlns:android="http://schemas.android.com/apk/res/android">

[我用*** s审查了我的Gmail地址]

我将它们改为

<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="3" android:versionName="1.5" package="appinventor.ai_************.test123"
  xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="preferExternal">

5)我移动到旧apk所在的目录(即包含目录test123的目录)并键入

apktool b test123

经过一些小事后,程序终止了。

6)我改为目录

test123/dist

并在其中我找到了一个新的.apk文件,也称为test123.apk。我把它放在我的网站here上。请注意,apk的“apktools之前”和apk之后的“apktools”版本具有完全相同的名称 - test123.apk。

7)我现在将“after”文件 - 由apktool b创建的版本 - 下载到Windows机器上,并用7-Zip打开它(切换到Windows只是为了我可以使用建议的精确程序)答案)。我找不到我建议删除的文件。我明白了

AndroidManifest.xml
classes.dex
resources.arsc
assets/smallkez.png
res/drawable/ya.png

就是这样。


总而言之,我似乎在DarkXphenomenon解决方案的第5步(在撰写本文时)失败了。如果我将“after”文件下载到手机上,并尝试安装它,我会收到令人难以置信的错误信息“!应用程序未安装”,我唯一的选择就是点击“完成”。

不幸的是,我仍然不知道我是否正在尝试做不可能的事情,即谷歌搜索是否导致人们找到过去工作但不再做的解决方案,或者我是否只是错过了一些愚蠢的东西。

对我来说这是一个根本问题!开箱即用的我的手机有大约21兆的可用内存,我的SD卡有千兆字节和千兆字节。

3 个答案:

答案 0 :(得分:4)

问题本身: 转向SD卡选项显示为灰色。

Issue

<强>解决方案:

目前,app-inventor本身不支持安装到外部SD功能。 所以,你面临的问题是一个显示这个问题的应用程序。

此方法确实有效。我测试过了!我还将我用过的所有工具上传到我的Google云端硬盘帐户,以便于下载。

test_orig.apk是app-inventor的原始文件。

第1步。使用apktool反编译APK。它可以在windows下使用apktool完成。 This是我在windows下使用的档案。无需解码源以编辑清单。因此,使用的命令是apktool d -s test_orig.apk

Decompilation

第2步。这会在包含apktool的同一目录中创建名为test_orig的文件夹。在此目录中是文件夹AndroidManifest.xml。在文本编辑器中打开它并更改以下行。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"  ...android:installLocation="preferExternal">

Change Manifest

第3步。使用apktool b test_orig重新编译apk的时间 Recompilation

第4步。现在,是时候签名了。使用Sign+轻松签名。 只需添加apk,它就会吐出签名副本。没有其他事情需要做。

Signing

第5步。您已签名的apk已准备好安装。 请记得卸载旧的apk ,否则您会看到一条错误消息Application Not Installed: An existing package with a conflicting signature exists.

结果结果:

End

已签名的申请表可供下载here

答案 1 :(得分:1)

这似乎是一个众所周知的问题:

http://code.google.com/p/app-inventor-for-android/issues/detail?id=186

这个帖子中的某个人说他们找到了解决方案,但如果我不得不猜测我会猜测他们使用的解决方案是在apk文件中对清单进行模糊处理之前。

不幸的是,我认为此时没有(简单)方法将应用程序移动到SD卡。

可能值得在MIT app inventor forums

上发布此问题

答案 2 :(得分:1)

我需要更频繁地挂在这里......

有两个第三方应用可让您编辑主要节目。他们通过将apk拆开并获取清单来执行您正在处理的工作,以便您可以对其进行编辑。

我推出了新版本的ai4a App Inventor http://sourceforge.net/projects/ai4a-configs/files/V1.2/

它将清单保存在您可以编辑它的临时文件夹中,然后使用您编辑的清单重建apk。我没有测试安装到SD卡上(我在Google TV上放了一些App Inventor应用程序只是为了看它工作;-))。如果您尝试使用ai4a服务器,请务必告诉我们。

以下是我们讨论服务器https://groups.google.com/forum/?hl=en#!forum/ai4a

的地方

这是支持https://groups.google.com/forum/?hl=en#!forum/usgsuacwai

加里