正常思路,想当然,两句指令搞定应该没啥毛病。
adb unstall ImageGrabber.apk
adb install ImageGrabber.apk
问题来了,报错Unknown package: ImageGrabber.apk
Exception occurred while dumping:
java.lang.IllegalArgumentException: Unknown package: ImageGrabber.apk
at com.android.server.pm.Settings.isOrphaned(Settings.java:4134)
at com.android.server.pm.PackageManagerService.isOrphaned(PackageManagerService.java:18256)
at com.android.server.pm.PackageManagerService.deletePackage(PackageManagerService.java:15673)
at com.android.server.pm.PackageInstallerService.uninstall(PackageInstallerService.java:888)
at com.android.server.pm.PackageManagerShellCommand.runUninstall(PackageManagerShellCommand.java:792)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:118)
at android.os.ShellCommand.exec(ShellCommand.java:94)
at com.android.server.pm.PackageManagerService.onShellCommand(PackageManagerService.java:18516)
at android.os.Binder.shellCommand(Binder.java:468)
at android.os.Binder.onTransact(Binder.java:367)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:2387)
at com.android.server.pm.PackageManagerService.onTransact(PackageManagerService.java:3147)
at android.os.Binder.execTransact(Binder.java:565)
手机端根本不认识这个apk,解决办法:
将 ImageGrabber.apk整个文件解压,其中包含:AndroidManifest.xml,打开之后是乱码,别着急,需要反编译工具AXMLPrinter2.jar 给他翻译一下,将这两个文件放在同一个目录下,如D:\ImageGrabber
先命令行将目录设定为D:\ImageGrabber 然后再执行java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt,前提是PC端装好了Java环境,特别是要注意设置好PC端的环境变量。
C:\Users\Antony WU>d:
D:\>cd ImageGrabber
D:\ImageGrabber>java -jar AXMLPrinter2.jar AndroidManifest.xml > AndroidManifest.txt
执行完成后,用notepad++打开AndroidManifest.txt,其中第6行就是所要的答案了package="com.qualcomm.vr.callibrationtool"
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0"
package="com.qualcomm.vr.callibrationtool"
platformBuildVersionCode="25"
platformBuildVersionName="7.1.1"
>
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="22"
>
</uses-sdk>
<uses-permission
android:name="android.permission.CAMERA"
>
</uses-permission>
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
>
</uses-permission>
<meta-data
android:name="android.support.VERSION"
android:value="25.3.0"
>
</meta-data>
<application
android:theme="@7F0800A3"
android:label="@7F060021"
android:icon="@7F030000"
android:debuggable="true"
android:allowBackup="true"
android:supportsRtl="true"
android:roundIcon="@7F030001"
>
<activity
android:name="com.qualcomm.vr.callibrationtool.CameraActivity"
>
<intent-filter
>
<action
android:name="android.intent.action.MAIN"
>
</action>
<category
android:name="android.intent.category.LAUNCHER"
>
</category>
</intent-filter>
</activity>
</application>
</manifest>
接下来就好搞了,做一个批处理文件,连接USB线或者设置手机端和PC端的wifi在同一局域网,点击后自动执行安装apk文件了,免去了手动安装的痛苦。
.\platform-tools\adb uninstall com.qualcomm.vr.callibrationtool
.\platform-tools\adb install ImageGrabber.apk
pause
再高级一点就用c# winform做一个界面,可以把多个adb指令功能集成到一个界面里,实现PC端一键控制手机端adb各类指令。
所涉及到的各工具下载地址如下:
https://download.youkuaiyun.com/download/ericwuhk/10672633
ref: https://blog.youkuaiyun.com/atggdsai/article/details/42131515