在Android native层的应用程序,当前已知的操作方式有如下:
1.通过终端输入参数来进行,这种方式适合与通过终端adb去操作,也可以通过脚本利用系统指令进行操作:
./android_peripheral_assist -r
2.将软件做成一个service,然后利用socket通信和上层APP或者其他C++应用程序通信,这种方式最好提供一个通信的接口
公司的大型软件除了通过接口来实现解耦和合作外,通常还通过定义协议来组织不同的软件模块,因此为了方便,上述两种方式都要支持,要能够提供自测模块便捷地对自身进行测试。
这里可以用到getopt这个命令:
详细见(搜索还是要用google(用不了的用http://www.jwss.com/,这个搜索引擎可以保留下来),百度搜不到这个,唉):
http://www.gnu.org/software/libc/manual/html_node/Getopt.html
这样的话,软件内部实现一个自测模块,就可以利用终端来进行调试了!(这里用moduleTest函数将命令传递给自测模块,其实就是将命令给到实际运行时的命令接受接口)
比如:
static int checkArgs(int argc, char * argv []) {
int opt;
int dongle_opt = TYPE_DONGLE_ERROR;
while ((opt = getopt(argc, argv, "ihsutrc:")) != -1) {
switch (opt) {
case 'c':{
printf("\ncheck the pro,c:'%s'\n",optarg);
moduleTest(optarg);
break;
}
default: {
break;
}
}
}
return dongle_opt;
}
int main(int argc, char *argv[])
{
char buffer[22];
memset(buffer,0,sizeof(buffer));
int __args = checkArgs(argc,argv);
printf("__args=%d\n",__args);
LOGE("pro AndroidPeripheralAssist start begin ...\n");
}