今天android 开源代码发布。 并在随后的博文里会对部分代码进行解析。
关于android manager 软件博文地址为:
PC 端源码地址为:https://github.com/acanoe/androidmanager
android 手机端源码地址为:https://github.com/acanoe/phonemanager
项目主要涉猎的技术方向为:QT,Linux C, android SDK/NDK。
项目纵览:
主机主动发送请求TCP
1.数据通信命令、应答格式:
标志
命令CMD
数据长度Length
数据DATA
0x77777777
1byte
4byte
Length
2.数据通信各字段说明:
字段
长度
说明
补充
标志
4
标示一个数据包的开始
CMD
1
命令字,各种操作的指令
该字段发送和接收应该相同
Length
4
数据区的四个字节,表示数据长度Length字节,先传输高位字节,再顺次传输其余低位字节,即大端模式
Data
Length
共
通信协议描述:
每一帧数据需要以包头为起始点,,客户端需要按接收的包头来校验数据,按数据命令CMD来解析数据包,目前数据包帧格式为:
#defineCMD_IMAGE1 // 图片数据包
#defineCMD_VIDEO2 // 视频数据包
#defineCMD_MUSIC3 // 音乐数据包
#defineCMD_APP4 // 应用数据包
#defineCMD_MMS5 // 短信数据包
#defineCMD_BOOK6 // 电话簿数据包
#defineCMD_STORAGE7 // 存储数据包
#defineCMD_SENDMESSAGE8 // 发送短信数据包
#defineCMD_CALLPHONE 9 // 打电话数据包
#defineCMD_ALL 10 // 所有数据总数据包
3.4软件流程
数据接收成功跳转到UI
软件开启
USB端口检测
发现android设备 有新版本安装
检测客户端应用版本
等待数据 无新版本,启动
加载UI界面
跳转到界面
数据接收失败post失败信号
进入正常数据访问流程
4.1.2.2NDK底层模块
AndoridndkAPI
publicstaticnativeintsetappinfo(intapppath,intappattribute,
Stringappname,Stringpackname,Stringappversion,Stringsize,intcount);
publicstaticnativevoidsetimageinfo(Stringname,Stringpath,
Stringsize,intcount);
publicstaticnativevoidsetvideoinfo(Stringname,Stringpath,
Stringsize,intcount);
publicstaticnativevoidsetmusicinfo(Stringname,Stringpath,
Stringsize,intcount);
publicstaticnativeintsetbookinfo(Stringname,Stringnumber,intcount);
publicstaticnativevoidsetmmsinfo(Stringname,Stringnumber,Stringdata,Stringtime,inttypeID,intcount);
publicstaticnativevoidsetstorageinfo(StringsdSize,StringsdAvail,StringmemorySize,StringmemoryAvail);
publicnativestaticvoidexitprograme();
publicstaticnativeStringgetmmsnumber();
publicstaticnativeStringgetmmsdata();
publicstaticnativevoidgotosend(intargv);
publicnativestaticvoidstartservice();
publicnativestaticvoidjnipthreadinit();
publicnativestaticvoidimageinfosend();
publicnativestaticintwhatyouwant();
publicnativestaticStringgetphonenumber();
勤勉是通往胜利的必经之路。要是由于胆怯艰难而去另觅佳径,