手机连接电脑安装apk工具

感谢各位的支持!

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[i]);
        index = s.find_last_of('');
        for (int j = index + 1; j < s.length();++j)
        {
            if (argv[i][j] <= 29 || argv[i][j] >= 127) {
                sbuf.str("");
                sbuf.clear();
                cout << "检测apk文件有中文字符,准备复制与重命名...
";
                s.erase(index + 1, s.length() - 1);
                s.append("~temp_apk_install.apk");
                sbuf << "copy " << argv[i] << ' ' << 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.下载链接
链接:https://pan.baidu.com/s/1EpaDwZl4Pwn83ynSMvPcpw 密码: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文件即可。

测试截图:

手机连接电脑安装apk工具

目前只在win7 x64系统上测试通过,其他系统暂未测试,可能会存在问题。

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
山上山下的头像 - 宋马
评论 共45条

请登录后发表评论

    暂无评论内容