`
oywl2008
  • 浏览: 1051541 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

adb install

 
阅读更多

 

个人比较喜欢命令行操作,特别是在 android 开发的时候,方便!

在终端敲入命令,会出现关于adb工具的使用帮助。

 

  1. adb -help  

安装 apk,一般都是使用命令:

 

 

  1. adb install **  

在 adb -help 可以看到如下帮助:

 

 

  1. adb install [-l] [-r] [-s] <file> - push this package file to the device and install it  
  2.                                  ('-l' means forward-lock the app)  
  3.                                  ('-r' means reinstall the app, keeping its data)  
  4.                                  ('-s' means install on SD card instead of internal storage)  

如果你的手机或者模拟器已经安装了某个 apk,如 my.apk

那么你没有卸载 my.apk 的话,(命令行操作)再次安装该 apk 的话,会包如下错误:

 

 

  1. 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 源码中寻找一些蛛丝马迹、、、、、、

该类是一个抽象类,声明如下:

 

  1. /**  
  2.  * Class for retrieving various kinds of information related to the application  
  3.  * packages that are currently installed on the device.  
  4.  *  
  5.  * You can find this class through {@link Context#getPackageManager}.  
  6.  */  
  7. public abstract class PackageManager   

PackageManager 主要是用于获得安装在设备上应用的各种信息。

看一个常量和一个方法,定义如下:

 

 

  1. /**  
  2.  * Flag parameter for {@link #installPackage(android.net.Uri, IPackageInstallObserver, int)} to  
  3.  * indicate that this package should be installed as forward locked, i.e. only the app itself  
  4.  * should have access to its code and non-resource assets.  
  5.  * @hide  
  6.  */  
  7. public static final int INSTALL_FORWARD_LOCK = 0x00000001;  
  1. /**  
  2.  * @hide  
  3.  *   
  4.  * Install a package. Since this may take a little while, the result will  
  5.  * be posted back to the given observer.  An installation will fail if the calling context  
  6.  * lacks the {@link android.Manifest.permission#INSTALL_PACKAGES} permission, if the  
  7.  * package named in the package file's manifest is already installed, or if there's no space  
  8.  * available on the device.  
  9.  *  
  10.  * @param packageURI The location of the package file to install.  This can be a 'file:' or a  
  11.  * 'content:' URI.  
  12.  * @param observer An observer callback to get notified when the package installation is  
  13.  * complete. {@link IPackageInstallObserver#packageInstalled(String, int)} will be  
  14.  * called when that happens.  observer may be null to indicate that no callback is desired.  
  15.  * @param flags - possible values: {@link #INSTALL_FORWARD_LOCK},  
  16.  * {@link #INSTALL_REPLACE_EXISTING}, {@link #INSTALL_ALLOW_TEST}.  
  17.  * @param installerPackageName Optional package name of the application that is performing the  
  18.  * installation. This identifies which market the package came from.  
  19.  */  
  20. public abstract void installPackage(  
  21.         Uri packageURI, IPackageInstallObserver observer, int flags,  
  22.         String installerPackageName);  
  1.   

可以看出:

INSTALL_FORWARD_LOCK 常量主要是用来保护自己的 app,installPackage 方法的参数 int flags 可以是 INSTALL_FORWARD_LOCK。

 

注意:在 android1.5 源码中,INSTALL_FORWARD_LOCK 常量是 ORWARD_LOCK_PACKAGE。

 

好了,目前为止,-l 参数是用来保护自己的 app,即 forward-locked(正向锁定)!

 

不过,平时安装测试 app,很少使用该参数!

 

 

 

http://blog.csdn.net/veryitman/article/details/6608802

分享到:
评论

相关推荐

    ADB_INSTALL.zip

    标题“ADB_INSTALL.zip”指的是一个包含了使用ADB(Android Debug Bridge)进行批量安装APK的工具包。这个压缩文件包括了必要的脚本和库文件,使得用户可以在同一网络段内的安卓设备上批量安装APK应用,前提条件是...

    Android Debug Bridge(安卓调试桥) tools platform-tools adb命令行工具

    安装apk:adb install “-lrtsdg” “path_to_apk” “-lrtsdg”: -l:将应用安装到保护目录 /mnt/asec; -r:允许覆盖安装; -t:允许安装 AndroidManifest.xml 里 application 指定 android:testOnly=“true” 的...

    易语言 调试安卓手机 adb简单实例 adb

    例如,使用`创建进程`命令可以启动一个ADB进程,并传递相应的命令参数,如`adb install path_to_apk`来安装apk文件。 4. 易语言ADB调试:在易语言中,你可以构建脚本来自动执行一系列ADB命令,如批量安装测试应用、...

    adb错误解决方法

    adb(Android Debug Bridge)是Android开发工具包中的一个重要组成部分,用于连接计算机与Android设备进行调试、数据传输等操作。在日常开发或者设备管理过程中,我们可能会遇到各种adb相关的错误,如设备未找到、...

    安卓USB调试和无线调试ADB安装apk

    2. 在命令提示符中输入`adb install myapp.apk`,等待安装完成。如果出现"Success",则表示安装成功。 五、无线调试ADB 1. 保持设备连接到电脑,开启设备的“USB调试”。 2. 在“开发者选项”中找到“adb调试网络...

    adb(40) adb(40)版本

    1. 安装应用:使用`adb install`命令可以将APK文件推送到设备并安装。 2. 卸载应用:使用`adb uninstall`命令可以移除已安装的应用。 3. 调试应用:`adb logcat`用于查看设备的日志输出,帮助开发者定位问题。 4. ...

    ADB.zip(adb工具)

    5. **安装和卸载应用**:`adb install`可以将APK文件远程安装到设备,`adb uninstall`则用于卸载应用。 6. **远程调试**:通过Wi-Fi连接,开发者可以在电脑上远程调试设备上的应用,无需物理连接。 7. **模拟用户...

    adb基本使用

    如果设备满足root权限和adb服务开启条件,已知设备IP,并且旧版本已被卸载,可以直接使用`adb install`命令进行安装。将apk文件拖放到命令后即可,例如`adb install apk路径`。同样,安装后可能需要重启设备。 3. ...

    windows adb调试工具

    3. **安装应用**:使用`adb install`命令可以将APK文件推送到设备并安装。例如,`adb install app.apk`。 4. **调试应用**:如果你想调试一个已经安装的应用,可以使用`adb forward`创建一个本地端口到设备端口的...

    ADBKeyBoard(完美解决ADB输入中文)

    ADBKeyBoard是一款专门为Android开发者设计的工具,它解决了在通过ADB(Android Debug Bridge)进行设备控制时无法方便地输入中文的问题。ADB是Android系统的核心部分,主要用于调试设备、传输文件以及控制设备的各项...

    adb putty 工具 ADB调试好帮手

    通过USB连接设备或Wi-Fi配对,开发者可以在命令行中执行各种操作,如安装APK文件(`adb install`),查看设备状态(`adb devices`),或者拉取设备上的文件到电脑(`adb pull`)。 PuTTY的加入让ADB具备了图形化的...

    windows平台adb工具-adb-1.0.39.rar

    4. **adb.exe**:这是ADB的主要执行文件,提供命令行接口,允许用户执行各种ADB命令,如`adb devices`来检测连接的设备,`adb install`来安装APK,或者`adb logcat`来查看设备日志。 5. **fastboot.exe**:这个文件...

    adb 1.0.26.rar

    要安装apk文件,可以使用`adb install &lt;path_to_apk&gt;`。 需要注意的是,adb版本的选择应根据实际需求来定。虽然新版本通常修复了已知问题并增加了新特性,但某些旧版本可能更适合处理特定情况或与特定设备的兼容性...

    C#发送ADB指令到手机

    例如,发送"adb devices"命令以检查连接的设备,或者"adb install"命令来安装APK文件。 描述中提到的Winform是Windows Forms,它是.NET Framework提供的一个用于构建桌面应用程序的库。在这个项目中,开发者可能...

    ADB Tool(ADB工具,用于解锁)

    2. **命令行操作**:ADB基于命令行界面,开发者可以通过输入特定命令来执行各种操作,如安装APK文件(`adb install`)、卸载应用(`adb uninstall`)、查看设备日志(`adb logcat`)等。 3. **文件传输**:ADB提供...

    ADBShell操作手册

    adb install [option] &lt;path&gt; 4 adb uninstall [option] &lt;package&gt; 6 adb shell pm list packages [options] &lt;FILTER&gt; 7 adb shell pm path &lt;PACKAGE&gt; 10 adb shell pm clear &lt;PACKAGE&gt; 10 文件管理命令(File ...

    arm版本的adb,用于和手机连接

    在实际使用中,用户可以通过终端运行ADB命令,例如`adb devices`来检测连接的设备,`adb install &lt;apk_path&gt;`来安装APK文件,或者使用`adb logcat`来查看设备的日志输出,这些功能对于开发者来说非常实用。

    华为ADB工具包&EMUI9 ADB驱动

    要安装APK文件,可以使用`adb install path_to_apk`命令,其中`path_to_apk`是APK文件的路径。此外,`adb logcat`可以用来查看设备的日志,这对于定位和解决问题非常有帮助。 总的来说,华为ADB工具包及EMUI9 ADB...

    ADB1.0.40.zip

    例如,`adb devices`命令可以列出所有已连接的设备,`adb install`则可以将APK文件安装到设备上。 总之,升级到ADB 1.0.40可以帮助开发者更高效、稳定地与Android设备进行交互,解决在调试过程中的各种连接问题,...

Global site tag (gtag.js) - Google Analytics