ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2019-10-12 13:25:47  阅读:325  来源: 互联网

标签:android app-inventor android-sdcard


[被编辑为在提出问题后一周显示当前的比赛状态]

我钻研了应用发明家,因为我的孩子(10岁和12岁)即将获得他们的第一款Android手机,并且已经完成了一些拖放编程(游戏制作人)的工作,因此我认为这对他们来说可能是一个很好的切入点.

现在,我已经使用App Inventor自己编写了5个应用程序,并在手机上安装了4个应用程序,尽管手机上的SD卡上有3G可用空间,但显然我“内存不足”,因此我无法安装第5个应用程序.

好的,这是怎么回事?设置->应用程序->管理应用程序不会剪切,因为在appinventor应用程序上“移动到SD卡”选项显示为灰色.

我将第5个应用打包为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">

[我用***审查了我的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的“ before apktools”和“ after 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步(撰写本文时)失败了.如果我将“之后”文件下载到手机上并尝试安装,则会收到令人难以置信的错误信息:“!未安装应用程序”,我唯一的选择是单击“完成”.

不幸的是,我仍然不知道我是否在尝试解决不可能完成的事情,即是否在谷歌上搜索导致人们找到曾经有效但不再可行的解决方案,或者我只是想念一些愚蠢的事情.

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

解决方法:

问题本身:
移至sd卡选项为灰色.

解:

目前,app-inventor本身尚不支持安装到外部SD功能.
因此,您遇到的问题是一个显示此问题的应用程序.

这种方法确实有效.我测试了!为了方便下载,我还将所有我使用过的工具上传到了我的Google云端硬盘帐户.

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

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

步骤2.这将在包含apktool的同一目录中创建名为test_orig的文件夹.该目录中包含文件夹AndroidManifest.xml.在文本编辑器中将其打开,然后更改以下行.

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

步骤3.是时候使用apktool b test_orig重新编译apk

步骤4.现在,该签名了.使用Sign+可以轻松对其进行签名.
只需添加apk,它将吐出签名的副本.不需要做其他任何事情.

步骤5.您已签名的APK已准备好安装.请记住要卸载旧的apk,否则您将看到一条错误消息,提示未安装应用程序:存在具有冲突签名的现有软件包.

最终结果:

已签名的应用程序可以下载here.

标签:android,app-inventor,android-sdcard
来源: https://codeday.me/bug/20191012/1900610.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有