个人比较喜欢命令行操作,特别是在 android 开发的时候,方便!
在终端敲入命令,会出现关于adb工具的使用帮助。
- adb -help
安装 apk,一般都是使用命令:
- adb install **
在 adb -help 可以看到如下帮助:
- adb install [-l] [-r] [-s] <file> - push this package file to the device and install it
- ('-l' means forward-lock the app)
- ('-r' means reinstall the app, keeping its data)
- ('-s' means install on SD card instead of internal storage)
如果你的手机或者模拟器已经安装了某个 apk,如 my.apk
那么你没有卸载 my.apk 的话,(命令行操作)再次安装该 apk 的话,会包如下错误:
- Failure [INSTALL_FAILED_ALREADY_EXISTS]
-r 参数表示重新安装 apk,所以加上这个参数就不会有上述错误。
-s 参数表示安装 apk 到 SDcard,好了。郁闷的时刻到来!-l 参数什么意思?
自己做了很多测试,也不是很明白。最后在 sdk api上找到答案。感谢:sdk-path/docs/guide/appendix/market-filters.html
看下面这张截图,也许回得到点启发。大致意思是在发布 apk 到 android market上时,可以设置相关标志位来保护你的 app。
那么,再从 PackageManager.java 源码中寻找一些蛛丝马迹、、、、、、
该类是一个抽象类,声明如下:
- /**
- * Class for retrieving various kinds of information related to the application
- * packages that are currently installed on the device.
- *
- * You can find this class through {@link Context#getPackageManager}.
- */
- public abstract class PackageManager
PackageManager 主要是用于获得安装在设备上应用的各种信息。
看一个常量和一个方法,定义如下:
- /**
- * Flag parameter for {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)} to
- * indicate that this package should be installed as forward locked, i.e. only the app itself
- * should have access to its code and non-resource assets.
- * @hide
- */
- public static final int INSTALL_FORWARD_LOCK = 0x00000001;
- /**
- * @hide
- *
- * Install a package. Since this may take a little while, the result will
- * be posted back to the given observer. An installation will fail if the calling context
- * lacks the {@link android.Manifest.permission#INSTALL_PACKAGES} permission, if the
- * package named in the package file's manifest is already installed, or if there's no space
- * available on the device.
- *
- * @param packageURI The location of the package file to install. This can be a 'file:' or a
- * 'content:' URI.
- * @param observer An observer callback to get notified when the package installation is
- * complete. {@link IPackageInstallObserver#packageInstalled(String, int)} will be
- * called when that happens. observer may be null to indicate that no callback is desired.
- * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},
- * {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.
- * @param installerPackageName Optional package name of the application that is performing the
- * installation. This identifies which market the package came from.
- */
- public abstract void installPackage(
- Uri packageURI, IPackageInstallObserver observer, int flags,
- String installerPackageName);
可以看出:
INSTALL_FORWARD_LOCK 常量主要是用来保护自己的 app,installPackage 方法的参数 int flags 可以是 INSTALL_FORWARD_LOCK。
注意:在 android1.5 源码中,INSTALL_FORWARD_LOCK 常量是 ORWARD_LOCK_PACKAGE。
好了,目前为止,-l 参数是用来保护自己的 app,即 forward-locked(正向锁定)!
不过,平时安装测试 app,很少使用该参数!
相关推荐
标题“ADB_INSTALL.zip”指的是一个包含了使用ADB(Android Debug Bridge)进行批量安装APK的工具包。这个压缩文件包括了必要的脚本和库文件,使得用户可以在同一网络段内的安卓设备上批量安装APK应用,前提条件是...
安装apk:adb install “-lrtsdg” “path_to_apk” “-lrtsdg”: -l:将应用安装到保护目录 /mnt/asec; -r:允许覆盖安装; -t:允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的...
例如,使用`创建进程`命令可以启动一个ADB进程,并传递相应的命令参数,如`adb install path_to_apk`来安装apk文件。 4. 易语言ADB调试:在易语言中,你可以构建脚本来自动执行一系列ADB命令,如批量安装测试应用、...
adb(Android Debug Bridge)是Android开发工具包中的一个重要组成部分,用于连接计算机与Android设备进行调试、数据传输等操作。在日常开发或者设备管理过程中,我们可能会遇到各种adb相关的错误,如设备未找到、...
2. 在命令提示符中输入`adb install myapp.apk`,等待安装完成。如果出现"Success",则表示安装成功。 五、无线调试ADB 1. 保持设备连接到电脑,开启设备的“USB调试”。 2. 在“开发者选项”中找到“adb调试网络...
1. 安装应用:使用`adb install`命令可以将APK文件推送到设备并安装。 2. 卸载应用:使用`adb uninstall`命令可以移除已安装的应用。 3. 调试应用:`adb logcat`用于查看设备的日志输出,帮助开发者定位问题。 4. ...
5. **安装和卸载应用**:`adb install`可以将APK文件远程安装到设备,`adb uninstall`则用于卸载应用。 6. **远程调试**:通过Wi-Fi连接,开发者可以在电脑上远程调试设备上的应用,无需物理连接。 7. **模拟用户...
如果设备满足root权限和adb服务开启条件,已知设备IP,并且旧版本已被卸载,可以直接使用`adb install`命令进行安装。将apk文件拖放到命令后即可,例如`adb install apk路径`。同样,安装后可能需要重启设备。 3. ...
3. **安装应用**:使用`adb install`命令可以将APK文件推送到设备并安装。例如,`adb install app.apk`。 4. **调试应用**:如果你想调试一个已经安装的应用,可以使用`adb forward`创建一个本地端口到设备端口的...
ADBKeyBoard是一款专门为Android开发者设计的工具,它解决了在通过ADB(Android Debug Bridge)进行设备控制时无法方便地输入中文的问题。ADB是Android系统的核心部分,主要用于调试设备、传输文件以及控制设备的各项...
通过USB连接设备或Wi-Fi配对,开发者可以在命令行中执行各种操作,如安装APK文件(`adb install`),查看设备状态(`adb devices`),或者拉取设备上的文件到电脑(`adb pull`)。 PuTTY的加入让ADB具备了图形化的...
4. **adb.exe**:这是ADB的主要执行文件,提供命令行接口,允许用户执行各种ADB命令,如`adb devices`来检测连接的设备,`adb install`来安装APK,或者`adb logcat`来查看设备日志。 5. **fastboot.exe**:这个文件...
要安装apk文件,可以使用`adb install <path_to_apk>`。 需要注意的是,adb版本的选择应根据实际需求来定。虽然新版本通常修复了已知问题并增加了新特性,但某些旧版本可能更适合处理特定情况或与特定设备的兼容性...
例如,发送"adb devices"命令以检查连接的设备,或者"adb install"命令来安装APK文件。 描述中提到的Winform是Windows Forms,它是.NET Framework提供的一个用于构建桌面应用程序的库。在这个项目中,开发者可能...
2. **命令行操作**:ADB基于命令行界面,开发者可以通过输入特定命令来执行各种操作,如安装APK文件(`adb install`)、卸载应用(`adb uninstall`)、查看设备日志(`adb logcat`)等。 3. **文件传输**:ADB提供...
adb install [option] <path> 4 adb uninstall [option] <package> 6 adb shell pm list packages [options] <FILTER> 7 adb shell pm path <PACKAGE> 10 adb shell pm clear <PACKAGE> 10 文件管理命令(File ...
在实际使用中,用户可以通过终端运行ADB命令,例如`adb devices`来检测连接的设备,`adb install <apk_path>`来安装APK文件,或者使用`adb logcat`来查看设备的日志输出,这些功能对于开发者来说非常实用。
要安装APK文件,可以使用`adb install path_to_apk`命令,其中`path_to_apk`是APK文件的路径。此外,`adb logcat`可以用来查看设备的日志,这对于定位和解决问题非常有帮助。 总的来说,华为ADB工具包及EMUI9 ADB...
例如,`adb devices`命令可以列出所有已连接的设备,`adb install`则可以将APK文件安装到设备上。 总之,升级到ADB 1.0.40可以帮助开发者更高效、稳定地与Android设备进行交互,解决在调试过程中的各种连接问题,...