Ukylin手机助手可行性分析

来源:互联网 发布:网络机顶盒连接电视 编辑:程序博客网 时间:2024/04/29 19:30

要求

· 熟悉ADB工具在Ubuntu Kylin系统上的安装、配置与使用;完整准确地理解ADB各项命令的参数和含义

· 基本功能(最低要求):

· 形成完善的设计文档

· 根据可以实现的管理功能,设计出独具特色的图形化管理界面(推荐但不限于使用Qt/QML);

· 能够上传/下载手机文件

· 能够安装/卸载手机应用

· 能够发送短信、打电话

· 高级功能(任选1项,多选不限)

· 壁纸、铃声的设置

· 相同wifi下的手机与电脑互联,可传送文件

· 手机垃圾的清理和性能加速

· 获取root权限等

· ...

目标

1.实现Android端服务器的架设。

2.实现项目在Ubuntu Kylin操作系统下的桌面化。

3.实现Android端服务器的前台框架。

4.实现项目的基本功能,如上传/下载手机文件、安装/卸载手机应用、发送短信、打电话等。

5.实现项目的高级功能,如壁纸、铃声的设置。

6.实现USB连接。

手机端采用的服务器框架

手机端采用Paw Server做为服务器框架,Paw Server实现了PCAndroid手机的交互,并允许在Android手机中发布动态网页。

通过PAW服务器,我们可以把在浏览器上使用Android系统的各种功能。在Android系统上搭建自己的Web服务器。支持添加插件和使用PHP脚本。

 

PAW Server支持的功能如下:

1.将服务器中的属性通过<bsh>标签在Html中展示。

2.拨号、呼叫

3.发短信

4.发邮件

5.播放多媒体文件

6.GPS

7.控制Wifi

8.调用相机

9.消息推送

 

手机端服务器框架技术评估

优麒麟手机助手的最终目的是帮助用户简化管理手机的操作,提供给用户完美的用户体验,所以必须具备的功能有文件显示、照片/视频播放、打电话、发短信、安装/卸载应用、手机铃声、壁纸等等。

1短信功能

Paw框架提供给我们所有的与Android交互的调用方法和范例,如发送短信,Paw定义的短信参数有smsMessage和 smsNumber.

另外SmsListener提供了如下的脚本方法:

1. boolean registerScript(String name, String code);

2. boolean updateScript(String name, String code);

3. boolean removeScript(String name): 

4. TreeMap getScripts():

5. clearScripts(): 

6. testMessage(String phoneNumber, String smsBody): 

如需要发送短信,我们只需在HTML代码中插入如下脚本:

1. import de.fun2code.android.pawserver.listener.*;

2. SmsListener.registerScript("test", "makeToast(\"Number: \" + smsNumber + \" 

3. Message: \" + smsMessage, \"short\");");

4. SmsListener.testMessage("5463", "SMS message...");

 

2多媒体功能

 

在对音频和视频文件的调用和操作中,paw也提供了很多方法,如:

5. void openfile(String path);

6.  void openfileAsync(String path);

7.  void open(in int [] list, int position);

8.  int getQueuePosition();

9.  boolean isPlaying();

10.  void stop();

11.  void pause();

12.  void play();

13.  void prev();

14.  void next();

15.  long duration();

16.  long position();

17.  long seek(long pos);

18.  String getTrackName();

19.  String getAlbumName();

20.  int getAlbumId();

21.  String getArtistName();

22.  int getArtistId();

23.  void enqueue(in int [] list, int action);

24.  int [] getQueue();

25.  void moveQueueItem(int from, int to);

26.  void setQueuePosition(int index);

27.  String getPath();

28.  int getAudioId();

29.  void setShuffleMode(int shufflemode);

30.  int getShuffleMode();

31.  int removeTracks(int first, int last);

32.  int removeTrack(int id);

33.  void setRepeatMode(int repeatmode);

34.  int getRepeatMode();

35.  int getMediaMountedCount();

 

3文件展示功能

相比于以上操作,对Android本地目录的展示和交互是一个难点,但是我们调用FileManager来处理,我们通过SVN来获取FileManager:

1. svn co svn://corefive.com/svn/trunk/

FileManager的配置文件放在Content.zip中的脚本文件目录下即可。

FileManager提供了操作文件夹和文件的方法,我们要做的只剩下和Android系统的对接。

如获取文件夹操作,我们可以调用getfoldergetfolder方法会返回一个文件对象的数组,同时我们可以调用getinfo方法来得到文件的详细信息。

比如我们发送一个请求:

1.  [path to connector]?mode=getfolder&path=/UserFiles/Image/&getsizes=true

会得到如下回复:

1.  [

2.  "/UserFiles/Image/logo.png" = {

3.  Path: "/UserFiles/Image/logo.png",

4.  Filename: "logo.png",

5.  File Type: "png",

6.  Preview: "/UserFiles/Image/logo.png",

7.  Properties: {

8.  Date Created: null, 

9.  Date Modified: "02/09/2007 14:01:06", 

10.  Height: 14,

11.  Width: 14,

12.  Size: 384 

13.  },

14.  Error: "",

15.  Code: 0

16.  },

17.  "/UserFiles/Image/icon.png" = {

18.  Path: "/UserFiles/Image/icon.png",

19.  Filename: "icon.png",

20.  File Type: "png",

21.  Preview: "/UserFiles/Image/icon.png",

22.  Properties: {

23.  Date Created: null, 

24.  Date Modified: "02/09/2007 14:01:06", 

25.  Height: 14,

26.  Width: 14,

27.  Size: 384 

28.  },

29.  Error: "",

30.  Code: 0

31.  }

32.  ]

每一个key在这个数组中都是一个类目的路径,而value则是这个文件类型对象。

拨打电话

拨打电话的行为分为两个部分:拨号和呼出。

电话号码就是一个参数,如果我们需要拨一个号码,可以调用如下脚本:

1. dial("*100#");

在手机上呼叫一个号码,号码同样被认为是一个参数,如下脚本可以呼出一个号码:

1. call("*100#");

 

 

与前台的对接

在与前台的对接中,由于所有后台代码都直接嵌入在HTML中,所以可以很方便的进行JS库的调用。

 

 

桌面端技术评估

为了在桌面端表现的更像是一个桌面应用,我们采用Qt+HTML5的技术架构。采用这种架构需要解决三个大问题:

1)需要考虑交互式设计,使页面能够根据“设备”(电脑端应用窗口)的大小进行自动调整。

2)页面图标的样式和行为具有一定的模式和可定制性,看起来像桌面的快捷方式。包含一个中间为加号的图标,点击的话用户可以从后台选择并添加指定的功能图标。

3)点击某个功能图标能够打开一个看起来像应用的窗口。

 

0 0
原创粉丝点击