如何从android设备获取apk文件?或者如何将apk文件从设备传输到系统?
当前回答
打开你想从你的手机上提取apk的应用程序。 获取当前打开的应用程序: adb shell dump活动活动| grep mFocusedActivity 获取包名的路径 Adb shell PM path <packagename.apk>
4.将您获得的路径复制到sdcard目录
adb shell cp /data/app/<packagename.apk> /sdcard
5.拉apk
adb pull /sdcard/base.apk
Edit
如果第2步不起作用,使用以下方法:
adb shell dumpsys window windows | grep mCurrentFocus
其他回答
不需要Root和ADB工具的方法。 从游戏商店安装MyAppSharer应用程序。
这些建议对我都不起作用,因为Android在包名后面附加了一个序列号来生成最终的APK文件名。在最新版本的Android (Oreo和Pie)上,会追加一个不可预测的随机字符串。下面的命令序列是我在非root设备上使用的:
1)确定应用程序的包名。“com.example.someapp”。如果存在以下情况,请跳过此步骤 您已经知道包的名称。
adb shell pm list packages
查看包名列表,并尝试在有问题的应用程序和包名之间找到匹配项。这通常很简单,但请注意,包的名称可以与应用程序的名称完全无关。如果您无法从包名列表中识别该应用程序,请尝试使用浏览器在谷歌Play中找到该应用程序。谷歌Play中应用程序的URL包含包名。
2)获取所需包的APK文件的完整路径名称。
adb shell pm path com.example.someapp
输出看起来像这样 包:/数据/应用/ com.example.someapp apk——2. 或 包:/数据/ app / com.example.someapp-nfFSVxn_CTafgra3Fr_rXQ = = / base.apk
3)使用步骤2中的完整路径名称,将APK文件从Android设备拉到开发箱中。
adb pull /data/app/com.example.someapp-2.apk path/to/desired/destination
在unix系统上,您可以尝试这个函数:
function android_pull_apk() {
if [ -z "$1" ]; then
echo "You must pass a package to this function!"
echo "Ex.: android_pull_apk \"com.android.contacts\""
return 1
fi
if [ -z "$(adb shell pm list packages | grep $1)" ]; then
echo "You are typed a invalid package!"
return 1
fi
apk_path="`adb shell pm path $1 | sed -e 's/package://g' | tr '\n' ' ' | tr -d '[:space:]'`"
apk_name="`adb shell basename ${apk_path} | tr '\n' ' ' | tr -d '[:space:]'`"
destination="$HOME/Documents/Android/APKs"
mkdir -p "$destination"
adb pull ${apk_path} ${destination}
echo -e "\nAPK saved in \"$destination/$apk_name\""
}
例如:android_pull_apk com.android.contacts 注意:识别包:adb shell pm列表包
不需要root:
这段代码将获得第三方包的路径和名称,以便您可以轻松识别您的APK
adb shell pm list packages -f -3
输出将是
包:/ / app / XX.XX.XX.apk = YY.YY.YY数据
现在使用下面的代码拉出这个包:
adb pull /data/app/XX.XX.XX.apk
如果你在C:>\中执行上面的cmd命令,那么你会在那里找到这个包。
想要非常非常舒服的一分钟解决方案吗?
只需你这个应用程序https://play.google.com/store/apps/details?id=com.cvinfo.filemanager(智能文件管理器从谷歌发挥)。
点击“应用程序”,选择一个,然后点击“备份”。它将在你的文件系统的app_backup文件夹;)
推荐文章
- 警告:API ' variable . getjavacompile()'已过时,已被' variable . getjavacompileprovider()'取代
- 安装APK时出现错误
- 碎片中的onCreateOptionsMenu
- TextView粗体通过XML文件?
- 如何使线性布局的孩子之间的空间?
- DSL元素android.dataBinding。enabled'已过时,已被'android.buildFeatures.dataBinding'取代
- ConstraintLayout:以编程方式更改约束
- PANIC: AVD系统路径损坏。检查ANDROID_SDK_ROOT值
- 如何生成字符串类型的buildConfigField
- Recyclerview不调用onCreateViewHolder
- Android API 21工具栏填充
- Android L中不支持操作栏导航模式
- 如何在TextView中添加一个子弹符号?
- PreferenceManager getDefaultSharedPreferences在Android Q中已弃用
- 在Android Studio中创建aar文件