本帖最后由 ~零度 于 2018-9-27 13:00 编辑
感谢各位的支持!
1. 编写这个程序的原因
目前已经有很多的手机助手软件可以在手机连接到电脑时安装apk,但是本人不想装这些软件。因为这些软件感觉太麻烦了,经常弹窗,可能还会有广告。但是如果每一次安装都在cmd里敲一遍"adb install ****"也觉得不太方便,所以动手写了这个小工具,没有什么技术含量。
2.源代码:
[C++] 纯文本查看 复制代码 #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文件有中文字符,准备复制与重命名...\n";
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文件即可。
测试截图:
测试截图
目前只在win7 x64系统上测试通过,其他系统暂未测试,可能会存在问题。
|