admin 发表于 2026-10-7 21:26:55

手机连接电脑安装apk工具

手机连接电脑安装apk工具

本帖**后由 ~零度 于 2018-9-27 13:00 编辑

      感谢各位的支持!





1. 编写这个程序的原因

      目前已经有很多的手机助手软件可以在手机连接到电脑时安装apk,但是本人不想装这些软件。因为这些软件感觉太麻烦了,经常弹窗,可能还会有广告。但是如果每一次安装都在cmd里敲一遍"adb install ****"也觉得不太方便,所以动手写了这个小工具,没有什么技术含量。

2.源代码:

纯文本查看 复制代码#include<iostream>
#include<sstream>
#include<windows.h>
using namespace std;

DWORD WINAPI CallADB(LPVOID pStringstream);

int main(int argc, char *argv[])
{
    stringstream sbuf;
    string s;
    int index;
    bool isCopy;
    for (int i = 1; i<argc; ++i)
    {
      isCopy = false;
      s.assign(argv);
      index = s.find_last_of('\\');
      for (int j = index + 1; j < s.length();++j)
      {
            if (argv <= 29 || argv >= 127) {
                sbuf.str("");
                sbuf.clear();
                cout << "检测apk文件有中文字符,准备复制与重命名...\n";
                s.erase(index + 1, s.length() - 1);
                s.append("~temp_apk_install.apk");
                sbuf << "copy " << argv << ' ' << s;
                system(sbuf.str().c_str());
                isCopy = true;
                break;
            }
      }
      sbuf.str("");
      sbuf.clear();
      sbuf << "adb install " << s;
      DWORD ThreadID;
      HANDLE hThread = CreateThread(NULL, 0, CallADB, (LPVOID)(&sbuf), 0, &ThreadID);
      WaitForSingleObject(hThread, INFINITE);
      CloseHandle(hThread);
      if (isCopy) {
            sbuf.str("");
            sbuf.clear();
            sbuf << "del " << s;
            system(sbuf.str().c_str());
      }
    }
    return 0;
}

DWORD WINAPI CallADB(LPVOID pStringstream) {
    stringstream *sbuf = (stringstream*)pStringstream;
    if (nullptr != sbuf) {
      system(sbuf->str().c_str());
    }
}



3. 如何使用

      ① 需要将adb工具和本程序放在同一目录,或者将adb工具添加到path环境变量里(二选一即可)。

      ② 第一次使用需要右键apk文件,选择打开方式,点击浏览,找到ApkInstall.exe,同时勾选始终使用选择的程序打开文件。之后直接双击apk文件就可以了。

      请注意,直接运行程序会直接退出,请将apk文件关联到本程序后双击apk文件安装,或者将apk文件拖到本程序上。



4.下载链接

      链接:**** Hidden Message ***** 密码:mdy7



5.更新说明

      ① 找不到 apk_install.apk的bug

      因为程序可能没有C盘的访问权限,所以修改了程序检测到可能不支持的中文字符时的行为。如果遇到找不到~temp_apk_install.apk的错误,请将apk修改为纯英文名称,或者移动到非C盘目录下(桌面也是C盘下的目录)。

      

      ② 关于添加无线安装功能

      楼主正在努力添加,但是这个比较麻烦,因为之前没有接触过网络方面的编程,所以需要学很多东西,而且开学以后事情会比较多,可能需要很久以后才能实现吧。



      ③ 程序闪退

      请查看“3. 如何使用”



      ④ 找不到设备

      请确认数据线完好且手机已启用USB调试,若问题依然存在,请保持手机处于连接状态,并安装adb驱动,百度云分享里的“ADBDriverInstaller.exe”是驱动安装程序



      ⑤ 设置环境变量

      百度云分享里增加了“设置环境变量.vbs”脚本,请先下载并解压adb.zip,然后将脚本放到解压后的目录下运行(需要管理员权限)



      ⑥ 设置文件关联

      请不要直接运行程序,右键apk文件 > 打开方式 > 选择默认程序 > 勾选“始终使用选择的程序打开这种文件” > 点击“浏览”并找到“ApkInstall.exe”文件 > 点击打开。之后需要安装apk时直接双击需要安装的apk文件即可。



测试截图:




Snipaste_2018-09-15_12-41-05.jpg (131.17 KB, 下载次数: 6)

下载附件

测试截图

2018-9-15 12:41 上传


下载链接:
百度网盘:**** Hidden Message *****提取码:mdy7
页: [1]
查看完整版本: 手机连接电脑安装apk工具