如何在UNINSTALL之后重起计算机~?

JOKER_FISH 2006-07-07 01:55:59
程序是用WINDOWS INSTALLER封的包

小弟想在UNINSTALL的时候 重新启动计算机

我查到好象需要在自定义操作里面添加一个可执行程序

如果这样利用程序重新启动计算机 重起后仍然会继续UNINSTALL吗?
...全文
159 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
kugou123 2006-07-07
  • 打赏
  • 举报
回复
错了,是延迟删除~

http://www.kztechs.com/pendmovestory/pendmovestory.zip
kugou123 2006-07-07
  • 打赏
  • 举报
回复
有种延迟启动的技术
JOKER_FISH 2006-07-07
  • 打赏
  • 举报
回复
经过测试 我在UNINSTALL节点 插入重起后
它是 先UNINSTALL之后再重新启动 并不是预期的 先卸一部分然后重起再卸一部分

请高人指点
JOKER_FISH 2006-07-07
  • 打赏
  • 举报
回复
重起的代码要如何添加呢?
EddieCai 2006-07-07
  • 打赏
  • 举报
回复
重起后仍然会继续UNINSTALL是因为在注册表里记录了一些东西,所以即使你是手动重启,也一样会继续uninstall
过程: 1.在虚拟机上安装了vmware,安装完成后,默认vm tools是没有安装的,启动后在下方提示没有安装虚拟工具,安装过程省略; 2.安装redhat,这个安装过程就省略,没安过的可以也去G一下; 3.安装vm tools: 1)以ROOT身份进入LINUX 2)按下 CTRL ALT组合键,进入主操作系统,点击VMWARE状态栏安装提示,或者点击 虚拟菜单下的安装虚拟机工具子菜单. 3)确认安装VMWARE TOOLS.   这时我们并没有真正的安装上了VMWARE TOOLS软件包,如果您点击菜单:DEVICES,您就会发现光驱的菜单文字变为:ide1:0-> C:\Program Files\VMware\VMware Workstation\Programs\linux.iso,这表示VMWARE将LINUX的ISO映象文件作为了虚拟机的光盘 4)鼠标点击LINUX界面,进入LINUX. 5)运行如下命令,注意大小写. mount -t iso9660 /dev/cdrom /mnt 加载CDROM设备,这时如果进入 /mnt 目录下,你将会 发现多了一个文件:vmware-linux-tools.tar.gz.这就是WMWARE TOOLS的LINUX软件包,也就是我们刚才使用WINISO 打开LINUX.ISO文件所看到的.   cp /mnt/vmware-linux-tools.tar.gz /tmp   将该软件包拷贝到LINUX的 TMP目录下.   umount /dev/cdrom   卸载CDROM.   cd /tmp   进入TMP目录   tar zxf vmware-linux-tools.tar.gz   解压缩该软件包,默认解压到vmware-tools-distrib 目录下(与文件名同名).   cd vmware-linux-tools   进入解压后的目录 这时要进入文本模式下运行下面的命令   ./install.pl 这时install提示你是否需要备份以前的配置文件,建议选择"y".   等待INSTALL运行完成后,这时键入 STARTX 命令,启动LINUX图形界面,vm中不再提示没有安装虚拟机工具了 在Ubuntu下安装VMware-Tools不像在Windows下安装容易,昨晚整了挺长时间终于安上了.方法在下面. 感谢提供方法的大侠! VMware Tools位置:VMware的安装路径\VMware\VMware Workstation\linux.iso 启动后按Esc选择recovery mode登陆.然后点击"虚拟机"→"安装VMware Tools". [root@rd01 ~]# mount /cdrom # 有时可能加载不了,这时就要先将系统关闭,再手动指定 ISO 映像: [root@rd01 ~]# cd /cdrom [root@rd01 ~]# ls -a [root@rd01 ~]# cp VMwareTools-5.5.1-19175.tar.gz /tmp [root@rd01 ~]# cd /tmp [root@rd01 ~]# tar zxpf VMwareTools-5.5.1-19175.tar.gz [root@rd01 ~]# cd vmware-tools-distrib [root@rd01 vmware-tools-distrib]# ./vmware-install.pl Creating a new installer database using the tar3 format. Installing the content of the package. # 安装过程的画面,全部使用默认值,一直按 Enter 就对了 In which directory do you want to install the binary files? [/usr/bin] What is the directory that contains the init directories (rc0.d/ to rc6.d/)? [/etc/rc.d] What is the directory that contains the init scripts? [/etc/rc.d/init.d] In which directory do you want to install the daemon files? [/usr/sbin] In which directory do you want to install the library files? [/usr/lib/vmware-tools] Thepath "/usr/lib/vmware-tools" does not exist currently. This programisgoingto create it, including needed parent directories. Is thiswhatyou want? [yes] In which directory do you want to install the documentation files? [/usr/share/doc/vmware-tools] Thepath "/usr/share/doc/vmware-tools" does not exist currently.Thisprogram isgoing to create it, including needed parent directories.Isthis what you want? [yes] The installation of VMware Tools 5.5.1 build-19175 for Linux completed successfully. You can decide to remove this software from your system at any time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl". Before running VMware Tools for the first time, you need to configure it by invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want this program to invoke the command for you now? [yes] Stopping VMware Tools services in the virtual machine: Guest operating system daemon: [ 确定 ] Trying to find a suitable vmhgfs module for your running kernel. The module bld-2.6.9-5.EL-i686-RHEL4 loads perfectly in the running kernel. pcnet32 30153 0 Unloading pcnet32 module Trying to find a suitable vmxnet module for your running kernel. The module bld-2.6.9-5.EL-i686-RHEL4 loads perfectly in the running kernel. Detected X.org version 6.8. 关闭控制台鼠标服务: [ 确定 ] 启动控制台鼠标服务: [ 确定 ] Please choose one of the following display sizes (1 - 13): # 显示分辨率,这里是以 1024x768 为例 # VMware Tools 安装的时候,会自动修改 X server 的配置文件 [1] "640x480" [2]< "800x600" [3] "1024x768" [4] "1152x864" [5] "1280x800" [6] "1152x900" [7] "1280x1024" [8] "1376x1032" [9] "1400x1050" [10] "1680x1050" [11] "1600x1200" [12] "1920x1200" [13] "2364x1773" Please enter a number between 1 and 13: [2] 3 X Window System Version 6.8.2 Release Date: 9 February 2005 X Protocol Version 11, Revision 0, Release 6.8.2 Build Operating System: Linux 2.6.9-34.EL i686 [ELF] Current Operating System: Linux rd01.domain 2.6.9-34.EL #1 Wed Mar 8 00:07:35 CST 2006 i686 Build Date: 04 May 2006 Build Host: x8664-build.centos.org Before reporting problems, check http://wiki.X.Org to make sure that you have the latest version. Module Loader present OSKernel: Linux version 2.6.9-34.EL (buildcentos@build-i386) (gccversion3.4.5 20051201 (Red Hat 3.4.5-2)) #1 Wed Mar 8 00:07:35 CST 2006P Markers: (--) probed, (**) from config file, (==) default setting, ( ) from command line, (!!) notice, (II) informational, (WW) warning, (EE) error, (NI) not implemented, (??) unknown. ( ) Log file: "/tmp/vmware-config0/XF86ConfigLog.3131", Time: Mon Jun 12 20:57:34 2006 ( ) Using config file: "/tmp/vmware-config0/XF86Config.3131" (WW) VMWARE(0): Failed to set up write-combining range (0xf0000000,0x1000000) X is running fine with the new config file. Starting VMware Tools services in the virtual machine: Switching to guest configuration: [ 确定 ] Guest filesystem driver: [ 确定 ] DMA setup: [ 确定 ] Guest operating system daemon: [ 确定 ] The configuration of VMware Tools 5.5.1 build-19175 for Linux for this running kernel completed successfully. You must restart your X session before any mouse or graphics changes take effect. You can now run VMware Tools by invoking the following command: "/usr/bin/vmware-toolbox" during an XFree86 session. To use the vmxnet driver, restart networking using the following commands: /etc/init.d/network stop rmmod pcnet32 rmmod vmxnet depmod -a modprobe vmxnet /etc/init.d/network start Enjoy, --the VMware team [root@rd01 vmware-tools-distrib]# shutdown -r now # 修改完成之后,重新启动计算机,让 VMware Tools 生效. == 重启后,你可能会发现还是要按"Ctrl Alt"释放鼠标(VM6.0没这问题了),我用的是5.5.3,要手动执行才有效果. 通过终端运行VMware-Tools: 点击Ubuntu桌面左上角的Applications→附件→终端,会打开一个类似Windows中记事本的程序,在里面输入以下内容($是自带的,不用专门输入): $ /usr/bin/vmware-toolbox 但如果你嫌麻烦,我们就需要让vmware-toolbox实现开机自动运行.点击 Ubuntu菜单:System→首选项→会话→Startup Programs,Add一个Name叫"vmware-toolbox",Command是"/usr/bin/vmware-toolbox"的启动 程序.这样每次开机后就能自动运行VMware Tools了.重启Ubuntu看看效果吧!(注意:vmware-toolbox并不是在后台隐藏运行的,启动后不要关闭). VMware Tools固然是个好东西,但也有副作用,比如说:虚拟机中的鼠标的滚轮不好使了.我们这样解决这个问题,还是打开终端,输入: $ sudo gedit /etc/X11/xorg.conf 这个命令使系统以root权限打开鼠标配置文件/etc/X11/xorg.conf.把文件中的 Option "Protocol" "ps/2" 改成 Option "Protocol" "IMPS/2" 重启Ubuntu搞定
分类: SQL Server          Windows server2003 + sql server2005 集群配置安装 一:环境 软硬件环境       虚拟3台windows server 2003主机。其中一台做域控DC,另外两台作为节点win1  win2. 域控DC网络设置: Hostname Private网卡 Public网卡   adtest   192.168.9.176     节点主机网络设置 Hostname Private网卡 Public网卡   Win1 10.0.0.173 192.168.9.173   Win2 10.0.0.174 192.168.9.174     二:建域test.com 在域控主机192.168.9.176上安装域 1        设置DC的ip    192.168.9.176
INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739037lWe2.png" \* MERGEFORMATINET 2      在DC中使用DCPROMO命令创建域   (后面的步骤中需要更新windows组件,必须先挂载安装盘)
INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077391708Ti6.jpg" \* MERGEFORMATINET 3   下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739247Oq09.jpg" \* MERGEFORMATINET 
 4  下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739274XN5X.jpg" \* MERGEFORMATINET 5  下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077393012nbo.png" \* MERGEFORMATINET 6 选择新林中的域 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739354rKwn.png" \* MERGEFORMATINET 

7  填入所要创建域的完整的域名
INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739377CMKf.png" \* MERGEFORMATINET 8  下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739509vRI0.png" \* MERGEFORMATINET 9   选择AD数据库和日志文件的存放位置 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739565AxuX.png" \* MERGEFORMATINET 10  存放SYSVOL的存放位置(注意:一定要放在NTFS的分区中) INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739603KBsU.png" \* MERGEFORMATINET 
 11   注意:AD是离不开DNS服务的,因为客户机加入域和登录域都需要把域名解析为IP地址,因为此时DC没有DNS服务器,所以选择第二项让系统在创建DC的同时把DNS服务随之一起安装上.当然你也可以安装DC后自己手动再安装和配置DNS服务器(当时是您给会正确配置DNS服务器),建议和DC一起让系统帮我们创建,因为省事 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739851kpky.png" \* MERGEFORMATINET 12  选择兼容的模式,为了以后可以方便windows2000和2003兼容 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407739883TU02.jpg" \* MERGEFORMATINET 
 13  设置AD的还原密码(为了以后对AD数据库做完备份,开机按F8进入AD还原模式需要的还原密码,如果在此设置了密码,一定切记): INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077399565Eoz.jpg" \* MERGEFORMATINET 14  下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407740932ypMd.jpg" \* MERGEFORMATINET 15  下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407741371FFnB.jpg" \* MERGEFORMATINET 16 需要挂载有关盘,才会自动安装DNS INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407741434D07d.jpg" \* MERGEFORMATINET 17  完成 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077425689rnx.jpg" \* MERGEFORMATINET 18   重启 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407742596D44S.jpg" \* MERGEFORMATINET 
 19  安装完重起系统后登录界面为使用域中的管理员和密码登录到域 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077426257kHs.png" \* MERGEFORMATINET 20  进入系统后查看计算机的状态 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407742652R7uD.png" \* MERGEFORMATINET 21查看管理工具会增加DNS和有关AD的工具,以及安全策略 
INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407742694MvtT.png" \* MERGEFORMATINET 
 22 点开用户和计算机域控管理界面 (创建域test.com完成) INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407742729f3b0.png" \* MERGEFORMATINET 三:配置节点win1 和 节点win2的网络,并添加到域中   1 网络配置 win1 网络配置 网卡1:   DNS需要配置DC的IP INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407742769IgEN.jpg" \* MERGEFORMATINET 网卡2 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407742840A6l3.jpg" \* MERGEFORMATINET “高级”里面配置一下禁用NetBIOS   不勾选前面两项 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407742943Fy03.jpg" \* MERGEFORMATINET Win2网络设置 网卡1: INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743537GJ7l.jpg" \* MERGEFORMATINET 网卡2 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077435693D38.png" \* MERGEFORMATINET Win1  win2 进行相同的操作 2  更改计算机名,以及加入域test.com INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743633bYBe.png" \* MERGEFORMATINET 3    属于域控制账号密码 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743676gbuo.jpg" \* MERGEFORMATINET 4   完成后重启 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743709vOFZ.jpg" \* MERGEFORMATINET 5 域登录 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743759G5G5.png" \* MERGEFORMATINET 
 6    加入域后的计算机属性 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743787p33j.png" \* MERGEFORMATINET Win2  也是一样的步骤加入到域中   6    在域控主机192.168.9.176中可以看到新添加的成员 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743817WsaU.png" \* MERGEFORMATINET 在步骤五中可能会提示报错指定域的名称或安全标识(SID)与该域的信任信息不一致 (因为指定域的名称或安全标识(SID)与该域的信任信息不一致)需要修改 修改方法:   1  .从安装盘中 support\tools\deploy.cab中提取sysprep.exe和setuppcl.exe  到桌面 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743850SDwD.png" \* MERGEFORMATINET 

INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743871Py6C.png" \* MERGEFORMATINET 
INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407743888vP01.png" \* MERGEFORMATINET 2  运行sysprep.exe"确定"开始重新封装 往下就是下一步下一步安装即可  (不能远程操作,封装一次即可,不作详述了) 四:安装win server2003集群 Win1节点上进行操作,关闭其他节点   1  依次单击“开始”、“所有程序”和“管理工具”,然后单击“群集管理器” INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077439293FFp.png" \* MERGEFORMATINET 2 下一步 
INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077440578D3X.png" \* MERGEFORMATINET 3  选择域(test.com),键入群集名win2003cluster。下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744070JRQx.png" \* MERGEFORMATINET         4 机器名输入 win1。下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744154ehw0.png" \* MERGEFORMATINET     5  这一步是检测硬件环境是否符合群集要求。如果这一步出现错误提示,可以点击“查看日志”,按照提示检查网络设置和磁盘阵列连接是否正确 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744230SSkp.gif" \* MERGEFORMATINET   1    通过下一步,输入集群的IP地址,操作系统虚拟服务器的IP 地址 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744249x6HR.gif" \* MERGEFORMATINET   6  输入域用户名和密码,这里使用的是域管理员administrator INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744263857b.gif" \* MERGEFORMATINET 说明:在项目实施时一定不能用域的管理员administrator。应该要求用户网络管理员提供一个专门管理 群集的新用户。这个新用户在各个群集节点中应该在本地管理员组(local administrator group)中。   7 点击“仲裁”按钮,在弹出的窗口中选择仲裁资源。我们选择磁盘Q(QDisk)作为仲裁盘 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744272ks9Q.gif" \* MERGEFORMATINET   8 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744294mA7n.gif" \* MERGEFORMATINET   9 完成 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744319FJ6n.gif" \* MERGEFORMATINET   10  群集 win2003cluster 已经配置成功。但是目前只有win1,我们需要将第二个节点加入,构建出容灾群集。 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744358n8K5.gif" \* MERGEFORMATINET     11  新建节点 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744371gd4L.gif" \* MERGEFORMATINET   12    下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744385peeG.gif" \* MERGEFORMATINET         13  输入“win2” INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744396zcBj.png" \* MERGEFORMATINET   14  下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744468rsZ5.gif" \* MERGEFORMATINET     15 下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744481R038.gif" \* MERGEFORMATINET   16 下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744502HRQ7.gif" \* MERGEFORMATINET       17 下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744520a8xd.gif" \* MERGEFORMATINET Win2上的共享磁盘QDisk 和ClusterData 已经被win1 所独占。这个警告不用理会     18 下一步,完成win2节点添加 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744536ppLl.gif" \* MERGEFORMATINET     19 操作系统容灾群集已经安装完毕。 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744552ya8d.gif" \* MERGEFORMATINET     20  配置群集网络通信 右键选择群集“属性” INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744587KWB4.gif" \* MERGEFORMATINET   21 本地连接2 -à属性   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744602x808.png" \* MERGEFORMATINET     22 专门用于群集节点内部通讯使用的 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077446226FNs.png" \* MERGEFORMATINET     23确保private 在public 上面(private 优先级更高)。确定完成网络设置。 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744651WcyM.jpg" \* MERGEFORMATINET       24  测试操作系统群集 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744660XhOo.gif" \* MERGEFORMATINET     25  点击移动组可以相互切换资源 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744686wgRC.png" \* MERGEFORMATINET         26为了测试群集的可用性,在win1 上右键选择“停止群集服务” INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744699WCOe.png" \* MERGEFORMATINET   27    Win2 接管了资源,成为目前群集的工作节点 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744712kFdi.png" \* MERGEFORMATINET INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744730Lazx.png" \* MERGEFORMATINET   28  重新启动win1 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744745g883.jpg" \* MERGEFORMATINET Windowns  server2003集群完成配置   五  :配置SQL Server 2005 群集 1说明:如果群集环境不需要安装报表服务(SQL Server Reporting Services),可以忽略此步骤。 安装IIS   2    打开组件服务---计算机---我的电脑---属性—安全配置,选择administrator 用户登陆,输入administrator 的密码。 这一步是必须的,否则在安装SQL server 2005 的时候会出现COM+错误。 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077447844cHJ.gif" \* MERGEFORMATINET INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077447977j94.gif" \* MERGEFORMATINET     3   配置MSDTC 到资源组中 进入 CMD 运行 net stop msdtc msdtc –uninstall msdtc –install net start msdtc   此操作之后在群集组直接出现 MSDTC 资源 如果出现msdtc无法正常使用,也可以用此方法重新配置   一般性增加MSDTC资源方法: INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_140774481409IC.png" \* MERGEFORMATINET “资源类型”选择“分布式事务协调器(DTC)” INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077448256dP6.gif" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744854jfNM.gif" \* MERGEFORMATINET 选择仲裁盘和群集名作为其依存资源。完成 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744867nQMJ.gif" \* MERGEFORMATINET 
确定,完成MSDTC 配置。 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744885M46X.gif" \* MERGEFORMATINET   4   注意,在安装SQL server 2005 前, 如果主机是多核心的处理器,请修改boot.ini 文件,把CPU 核心数 改为1 .可以在msconfig 选项中直接选择修改 ,这个是2005 本身的bug,等完成安装后打SP3 或更高的补丁。 补丁打完之后可修改回正常核心数量 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744896HzT9.gif" \* MERGEFORMATINET         5安装SQL Server 2005 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744939QYbK.png" \* MERGEFORMATINET 下一步 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077449503Df3.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744968I81t.png" \* MERGEFORMATINET 下一步(步骤2处理不好,会出现com+错误) INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077449795J34.png" \* MERGEFORMATINET   开始安装必备组件 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407744989AIgW.png" \* MERGEFORMATINET 系统配置检查 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745003rYzQ.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077450180cuh.gif" \* MERGEFORMATINET 输入注册信息 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745031baoA.png" \* MERGEFORMATINET 选择要安装的组件 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745057vz41.png" \* MERGEFORMATINET (所提供光盘只有SQL Server Database Services组件) 输入实例名:MSSQL2005 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745072podT.png" \* MERGEFORMATINET 输入虚拟服务器的名称:SH-sqldbc INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745107ArP0.png" \* MERGEFORMATINET 输入虚拟服务器名称,下一步(区别于集群虚拟服务器IP) INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745121U1uU.gif" \* MERGEFORMATINET 为虚拟服务器指定IP 地址,点击“添加” INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745126XcS5.gif" \* MERGEFORMATINET   为数据文件指定安装路径,请注意这里的S 盘是数据存储盘(ClusterData),千万不要把数据文件安装到仲裁盘(QDisk)上。 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745139mnRW.gif" \* MERGEFORMATINET 可以在集群管理器上分一下组 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745149zX6d.gif" \* MERGEFORMATINET 该用户其实应该是cluster,如果用administrator,会造成不能在远程计算机安装(后面述修改方法,也可以之前在域中建好用户) INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745155lTGS.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745190BL3x.gif" \* MERGEFORMATINET INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077451973Bma.png" \* MERGEFORMATINET     INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745210d8k8.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077452234KZ9.png" \* MERGEFORMATINET 选择混合模式验证 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745234SblE.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745246Aqpq.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745262pPPB.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745273LV55.png" \* MERGEFORMATINET 开始安装 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745288YFsc.png" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745350t0Wp.png" \* MERGEFORMATINET 安装程序。 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745365spAH.png" \* MERGEFORMATINET   完成后在另一个节点安装。   六:解决远程不能安装问题,创建swg域用户,委托管理 1 打开域控制管理 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_14077453825h6y.png" \* MERGEFORMATINET 2     新建用户 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745628BIXb.png" \* MERGEFORMATINET   3     添加到组 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745724heZa.png" \* MERGEFORMATINET     4     添加到administrator组中 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745737U5xo.png" \* MERGEFORMATINET   5     查看属性 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745745VMv1.jpg" \* MERGEFORMATINET   6     win1 win2 节点上加用户权限 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745754s7Nj.jpg" \* MERGEFORMATINET     7 添加到swg组 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745762t1Z5.jpg" \* MERGEFORMATINET   8 最后全部用swg用户等test.com域上的主机win1,win2 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745778Klvg.jpg" \* MERGEFORMATINET           七:安装完成后测试 1 win1上查看增加的资源 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745798o54e.jpg" \* MERGEFORMATINET       2  停止其中win1节点,服务自动转移 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745807BB77.jpg" \* MERGEFORMATINET   INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745813HCSC.jpg" \* MERGEFORMATINET 八:访问数据库,导入数据 1  右键“数据库” “附加”
INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745821o56o.jpg" \* MERGEFORMATINET   2 导入整个数据库 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745830HtaT.jpg" \* MERGEFORMATINET   3 导入完成后,显示数据 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745846B7dG.jpg" \* MERGEFORMATINET   4 做故障转移时,数据库可以正常被访问 INCLUDEPICTURE \d "http://blog.itpub.net/attachment/201408/11/29500582_1407745935DEw2.jpg" \* MERGEFORMATINET  
ADB,即 Android Debug Bridge,它是 Android 开发/测试人员不可替代的强大工具,也是 Android 设备玩家的好玩具。 注:有部分命令的支持情况可能与 Android 系统版本及定制 ROM 的实现有关。 基本用法 命令语法 adb 命令的基本语法如下: adb [-d|-e|-s ] 如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb 。 为命令指定目标设备 如果有多个设备/模拟器连接,则需要为命令指定目标设备。 参数 含义 -d 指定当前唯一通过 USB 连接的 Android 设备为命令目标 -e 指定当前唯一运行的模拟器为命令目标 -s 指定相应 serialNumber 号的设备/模拟器为命令目标 在多个设备/模拟器连接的情况下较常用的是 -s 参数,serialNumber 可以通过 adb devices 命令获取。如: $ adb devices List of devices attached cf264b8f device emulator-5554 device 10.129.164.6:5555 device 输出里的 cf264b8f、emulator-5554 和 10.129.164.6:5555 即为 serialNumber。 比如这时想指定 cf264b8f 这个设备来运行 adb 命令获取屏幕分辨率: adb -s cf264b8f shell wm size 又如想给 10.129.164.6:5555 这个设备安装应用(这种形式的 serialNumber 格式为 :,一般为无线连接的设备或 Genymotion 等第三方 Android 模拟器): adb -s 10.129.164.6:5555 install test.apk 遇到多设备/模拟器的情况均使用这几个参数为命令指定目标设备,下文中为简化描述,不再重复。 启动/停止 启动 adb server 命令: adb start-server (一般无需手动执行此命令,在运行 adb 命令时若发现 adb server 没有启动会自动调起。) 停止 adb server 命令: adb kill-server 查看 adb 版本 命令: adb version 示例输出: Android Debug Bridge version 1.0.36 Revision 8f855a3d9b35-android 以 root 权限运行 adbd adb 的运行原理是 PC 端的 adb server 与手机端的守护进程 adbd 建立连接,然后 PC 端的 adb client 通过 adb server 转发命令,adbd 接收命令后解析运行。 所以如果 adbd 以普通权限执行,有些需要 root 权限才能执行的命令无法直接用 adb xxx 执行。这时可以 adb shell 然后 su 后执行命令,也可以让 adbd 以 root 权限执行,这个就能随意执行高权限命令了。 命令: adb root 正常输出: restarting adbd as root 现在再运行 adb shell,看看命令行提示符是不是变成 # 了? 有些手机 root 后也无法通过 adb root 命令让 adbd 以 root 权限执行,比如三星的部分机型,会提示 adbd cannot run as root in production builds,此时可以先安装 adbd Insecure,然后 adb root 试试。 相应地,如果要恢复 adbd 为非 root 权限的话,可以使用 adb unroot 命令。 指定 adb server 的网络端口 命令: adb -P start-server 默认端口为 5037。 设备连接管理 查询已连接设备/模拟器 命令: adb devices 输出示例: List of devices attached cf264b8f device emulator-5554 device 10.129.164.6:5555 device 输出格式为 [serialNumber] [state],serialNumber 即我们常说的 SN,state 有如下几种: offline —— 表示设备未连接成功或无响应。 device —— 设备已连接。注意这个状态并不能标识 Android 系统已经完全启动和可操作,在设备启动过程中设备实例就可连接到 adb,但启动完毕后系统才处于可操作状态。 no device —— 没有设备/模拟器连接。 以上输出显示当前已经连接了三台设备/模拟器,cf264b8f、emulator-5554 和 10.129.164.6:5555 分别是它们的 SN。从 emulator-5554 这个名字可以看出它是一个 Android 模拟器,而 10.129.164.6:5555 这种形为 : 的 serialNumber 一般是无线连接的设备或 Genymotion 等第三方 Android 模拟器。 常见异常输出: 没有设备/模拟器连接成功。 List of devices attached 设备/模拟器未连接到 adb 或无响应。 List of devices attached cf264b8f offline USB 连接 通过 USB 连接来正常使用 adb 需要保证几点: 硬件状态正常。 包括 Android 设备处于正常开机状态,USB 连接线和各种接口完好。 Android 设备的开发者选项和 USB 调试模式已开启。 可以到「设置」-「开发者选项」-「Android 调试」查看。 如果在设置里找不到开发者选项,那需要通过一个彩蛋来让它显示出来:在「设置」-「关于手机」连续点击「版本号」7 次。 设备驱动状态正常。 这一点貌似在 Linux 和 Mac OS X 下不用操心,在 Windows 下有可能遇到需要安装驱动的情况,确认这一点可以右键「计算机」-「属性」,到「设备管理器」里查看相关设备上是否有黄色感叹号或问号,如果没有就说明驱动状态已经好了。否则可以下载一个手机助手类程序来安装驱动先。 通过 USB 线连接好电脑和设备后确认状态。 adb devices 如果能看到 xxxxxx device 说明连接成功。 无线连接(需要借助 USB 线) 除了可以通过 USB 连接设备与电脑来使用 adb,也可以通过无线连接——虽然连接过程中也有需要使用 USB 的步骤,但是连接成功之后你的设备就可以在一定范围内摆脱 USB 连接线的限制啦! 操作步骤: 将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。 将设备与电脑通过 USB 线连接。 应确保连接成功(可运行 adb devices 看是否能列出该设备)。 让设备在 5555 端口监听 TCP/IP 连接: adb tcpip 5555 断开 USB 连接。 找到设备的 IP 地址。 一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址 一节里的方法用 adb 命令来查看。 通过 IP 地址连接设备。 adb connect 这里的 就是上一步中找到的设备 IP 地址。 确认连接状态。 adb devices 如果能看到 :5555 device 说明连接成功。 如果连接不了,请确认 Android 设备与电脑是连接到了同一个 WiFi,然后再次执行 adb connect 那一步; 如果还是不行的话,通过 adb kill-server 重新启动 adb 然后从头再来一次试试。 断开无线连接 命令: adb disconnect 无线连接(无需借助 USB 线) 注:需要 root 权限。 上一节「无线连接(需要借助 USB 线)」是官方文档里介绍的方法,需要借助于 USB 数据线来实现无线连接。 既然我们想要实现无线连接,那能不能所有步骤下来都是无线的呢?答案是能的。 在 Android 设备上安装一个终端模拟器。 已经安装过的设备可以跳过此步。我使用的终端模拟器下载地址是:Terminal Emulator for Android Downloads 将 Android 设备与要运行 adb 的电脑连接到同一个局域网,比如连到同一个 WiFi。 打开 Android 设备上的终端模拟器,在里面依次运行命令: su setprop service.adb.tcp.port 5555 找到 Android 设备的 IP 地址。 一般能在「设置」-「关于手机」-「状态信息」-「IP地址」找到,也可以使用下文里 查看设备信息 - IP 地址 一节里的方法用 adb 命令来查看。 在电脑上通过 adb 和 IP 地址连接 Android 设备。 adb connect 这里的 就是上一步中找到的设备 IP 地址。 如果能看到 connected to :5555 这样的输出则表示连接成功。 节注一: 有的设备,比如小米 5S + MIUI 8.0 + Android 6.0.1 MXB48T,可能在第 5 步之前需要重启 adbd 服务,在设备的终端模拟器上运行: restart adbd 如果 restart 无效,尝试以下命令: start adbd stop adbd 应用管理 查看应用列表 查看应用列表的基本命令格式是 adb shell pm list packages [-f] [-d] [-e] [-s] [-3] [-i] [-u] [--user USER_ID] [FILTER] 即在 adb shell pm list packages 的基础上可以加一些参数进行过滤查看不同的列表,支持的过滤参数如下: 参数 显示列表 无 所有应用 -f 显示应用关联的 apk 文件 -d 只显示 disabled 的应用 -e 只显示 enabled 的应用 -s 只显示系统应用 -3 只显示第三方应用 -i 显示应用的 installer -u 包含已卸载应用 包名包含 字符串 所有应用 命令: adb shell pm list packages 输出示例: package:com.android.smoketest package:com.example.android.livecubes package:com.android.providers.telephony package:com.google.android.googlequicksearchbox package:com.android.providers.calendar package:com.android.providers.media package:com.android.protips package:com.android.documentsui package:com.android.gallery package:com.android.externalstorage ... // other packages here ... 系统应用 命令: adb shell pm list packages -s 第三方应用 命令: adb shell pm list packages -3 包名包含某字符串的应用 比如要查看包名包含字符串 mazhuang 的应用列表,命令: adb shell pm list packages mazhuang 当然也可以使用 grep 来过滤: adb shell pm list packages | grep mazhuang 安装 APK 命令格式: adb install [-lrtsdg] 参数: adb install 后面可以跟一些可选参数来控制安装 APK 的行为,可用参数及含义如下: 参数 含义 -l 将应用安装到保护目录 /mnt/asec -r 允许覆盖安装 -t 允许安装 AndroidManifest.xml 里 application 指定 android:testOnly="true" 的应用 -s 将应用安装到 sdcard -d 允许降级覆盖安装 -g 授予所有运行时权限 运行命令后如果见到类似如下输出(状态为 Success)代表安装成功: [100%] /data/local/tmp/1.apk pkg: /data/local/tmp/1.apk Success 上面是当前最新版 v1.0.36 的 adb 的输出,会显示 push apk 文件到手机的进度百分比。 使用旧版本 adb 的输出则是这样的: 12040 KB/s (22205609 bytes in 1.801s) pkg: /data/local/tmp/SogouInput_android_v8.3_sweb.apk Success 而如果状态为 Failure 则表示安装失败,比如: [100%] /data/local/tmp/map-20160831.apk pkg: /data/local/tmp/map-20160831.apk Failure [INSTALL_FAILED_ALREADY_EXISTS] 常见安装失败输出代码、含义及可能的解决办法如下: 输出 含义 解决办法 INSTALL_FAILED_ALREADY_EXISTS 应用已经存在,或卸载了但没卸载干净 adb install 时使用 -r 参数,或者先 adb uninstall 再安装 INSTALL_FAILED_INVALID_APK 无效的 APK 文件 INSTALL_FAILED_INVALID_URI 无效的 APK 文件名 确保 APK 文件名里无中文 INSTALL_FAILED_INSUFFICIENT_STORAGE 空间不足 清理空间 INSTALL_FAILED_DUPLICATE_PACKAGE 已经存在同名程序 INSTALL_FAILED_NO_SHARED_USER 请求的共享用户不存在 INSTALL_FAILED_UPDATE_INCOMPATIBLE 以前安装过同名应用,但卸载时数据没有移除 先 adb uninstall 再安装 INSTALL_FAILED_SHARED_USER_INCOMPATIBLE 请求的共享用户存在但签名不一致 INSTALL_FAILED_MISSING_SHARED_LIBRARY 安装包使用了设备上不可用的共享库 INSTALL_FAILED_REPLACE_COULDNT_DELETE 替换时无法删除 INSTALL_FAILED_DEXOPT dex 优化验证失败或空间不足 INSTALL_FAILED_OLDER_SDK 设备系统版本低于应用要求 INSTALL_FAILED_CONFLICTING_PROVIDER 设备里已经存在与应用里同名的 content provider INSTALL_FAILED_NEWER_SDK 设备系统版本高于应用要求 INSTALL_FAILED_TEST_ONLY 应用是 test-only 的,但安装时没有指定 -t 参数 INSTALL_FAILED_CPU_ABI_INCOMPATIBLE 包含不兼容设备 CPU 应用程序二进制接口的 native code INSTALL_FAILED_MISSING_FEATURE 应用使用了设备不可用的功能 INSTALL_FAILED_CONTAINER_ERROR 1. sdcard 访问失败; 2. 应用签名与 ROM 签名一致,被当作内置应用 1. 确认 sdcard 可用,或者安装到内置存储; 2. 打包时不与 ROM 使用相同签名 INSTALL_FAILED_INVALID_INSTALL_LOCATION 1. 不能安装到指定位置; 2. 应用签名与 ROM 签名一致,被当作内置应用 1. 切换安装位置,添加或删除 -s 参数; 2. 打包时不与 ROM 使用相同签名 INSTALL_FAILED_MEDIA_UNAVAILABLE 安装位置不可用 一般为 sdcard,确认 sdcard 可用或安装到内置存储 INSTALL_FAILED_VERIFICATION_TIMEOUT 验证安装包超时 INSTALL_FAILED_VERIFICATION_FAILURE 验证安装包失败 INSTALL_FAILED_PACKAGE_CHANGED 应用与调用程序期望的不一致 INSTALL_FAILED_UID_CHANGED 以前安装过该应用,与本次分配的 UID 不一致 清除以前安装过的残留文件 INSTALL_FAILED_VERSION_DOWNGRADE 已经安装了该应用更高版本 使用 -d 参数 INSTALL_FAILED_PERMISSION_MODEL_DOWNGRADE 已安装 target SDK 支持运行时权限的同名应用,要安装的版本不支持运行时权限 INSTALL_PARSE_FAILED_NOT_APK 指定路径不是文件,或不是以 .apk 结尾 INSTALL_PARSE_FAILED_BAD_MANIFEST 无法解析的 AndroidManifest.xml 文件 INSTALL_PARSE_FAILED_UNEXPECTED_EXCEPTION 解析器遇到异常 INSTALL_PARSE_FAILED_NO_CERTIFICATES 安装包没有签名 INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES 已安装该应用,且签名与 APK 文件不一致 先卸载设备上的该应用,再安装 INSTALL_PARSE_FAILED_CERTIFICATE_ENCODING 解析 APK 文件时遇到 CertificateEncodingException INSTALL_PARSE_FAILED_BAD_PACKAGE_NAME manifest 文件里没有或者使用了无效的包名 INSTALL_PARSE_FAILED_BAD_SHARED_USER_ID manifest 文件里指定了无效的共享用户 ID INSTALL_PARSE_FAILED_MANIFEST_MALFORMED 解析 manifest 文件时遇到结构性错误 INSTALL_PARSE_FAILED_MANIFEST_EMPTY 在 manifest 文件里找不到找可操作标签(instrumentation 或 application) INSTALL_FAILED_INTERNAL_ERROR 因系统问题安装失败 INSTALL_FAILED_USER_RESTRICTED 用户被限制安装应用 INSTALL_FAILED_DUPLICATE_PERMISSION 应用尝试定义一个已经存在的权限名称 INSTALL_FAILED_NO_MATCHING_ABIS 应用包含设备的应用程序二进制接口不支持的 native code INSTALL_CANCELED_BY_USER 应用安装需要在设备上确认,但未操作设备或点了取消 在设备上同意安装 INSTALL_FAILED_ACWF_INCOMPATIBLE 应用程序与设备不兼容 does not contain AndroidManifest.xml 无效的 APK 文件 is not a valid zip file 无效的 APK 文件 Offline 设备未连接成功 先将设备与 adb 连接成功 unauthorized 设备未授权允许调试 error: device not found 没有连接成功的设备 先将设备与 adb 连接成功 protocol failure 设备已断开连接 先将设备与 adb 连接成功 Unknown option: -s Android 2.2 以下不支持安装到 sdcard 不使用 -s 参数 No space left on devicerm 空间不足 清理空间 Permission denied … sdcard … sdcard 不可用 参考:PackageManager.java adb install 内部原理简介 adb install 实际是分三步完成: push apk 文件到 /data/local/tmp。 调用 pm install 安装。 删除 /data/local/tmp 下的对应 apk 文件。 所以,必要的时候也可以根据这个步骤,手动分步执行安装过程。 卸载应用 命令: adb uninstall [-k] 表示应用的包名,-k 参数可选,表示卸载应用但保留数据和缓存目录。 命令示例: adb uninstall com.qihoo360.mobilesafe 表示卸载 360 手机卫士。 清除应用数据与缓存 命令: adb shell pm clear 表示应用名包,这条命令的效果相当于在设置里的应用信息界面点击了「清除缓存」和「清除数据」。 命令示例: adb shell pm clear com.qihoo360.mobilesafe 表示清除 360 手机卫士的数据和缓存。 查看前台 Activity 命令: adb shell dumpsys activity activities | grep mFocusedActivity 输出示例: mFocusedActivity: ActivityRecord{8079d7e u0 com.cyanogenmod.trebuchet/com.android.launcher3.Launcher t42} 其中的 com.cyanogenmod.trebuchet/com.android.launcher3.Launcher 就是当前处于前台的 Activity。 查看正在运行的 Services 命令: adb shell dumpsys activity services [] 参数不是必须的,指定 表示查看与某个包名相关的 Services,不指定表示查看所有 Services。 不一定要给出完整的包名,比如运行 adb shell dumpsys activity services org.mazhuang,那么包名 org.mazhuang.demo1、org.mazhuang.demo2 和 org.mazhuang123 等相关的 Services 都会列出来。 与应用交互 主要是使用 am 命令,常用的 如下: command 用途 start [options] 启动 指定的 Activity startservice [options] 启动 指定的 Service broadcast [options] 发送 指定的广播 force-stop 停止 相关的进程 参数很灵活,和写 Android 程序时代码里的 Intent 相对应。 用于决定 intent 对象的选项如下: 参数 含义 -a 指定 action,比如 android.intent.action.VIEW -c 指定 category,比如 android.intent.category.APP_CONTACTS -n 指定完整 component 名,用于明确指定启动哪个 Activity,如 com.example.app/.ExampleActivity 里还能带数据,就像写代码时的 Bundle 一样: 参数 含义 --esn null 值(只有 key 名) -e|--es string 值 --ez boolean 值 --ei integer 值 --el long 值 --ef float 值 --eu URI --ecn component name --eia [,

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧