android adb push 和 adb install的区别

来源:互联网 发布:php宠物商城源代码 编辑:程序博客网 时间:2024/06/06 06:35

..platform\system\core\adb\commandline.c中adb push的实现
if(!strcmp(argv[0], "push")) {
if(argc != 3) return usage();
return do_sync_push(argv[1], argv[2], 0 /* no verify APK */);
}

同样的文件中的函数install_app也实现了adb install实现:
安装apk调用do_sync_push(apk_file, apk_dest, 1 /* verify APK */)时需要验证,验证文件在有SD卡时位于"/sdcard/tmp/"目录下、无SD卡时位于"/data/local/tmp/"下 ,如果上面的安装文件成功push到了手机上,这个函数则会把验证文件push到临时文件夹中进行验证,在用手机里的pm程序安装应用程序包(即pm_command(transport, serial, argc, argv)),验证成功后再删除;如果安装文件未能成功push到手机,则删除该失败文件。

总之,“adb push”仅拷贝apk到手机上(push到/system/app下重启会注册应用程序),而“adb install”不仅拷贝apk到手机上而且安装应用程序包到系统中。