Android学习 - (2)打造Android版手机视频监控系统

简介:

上一篇博文, 来继续完善这个例子; 主要是新增了2个Activity, 显示设备与视频通道的TreeActivity, 浏览某一个通道的实时画面的ImageActivity. TreeActivity主要就是使用一个ListView控件按层次关系来显示区域、设备、视频通道信息。主要涉及以下几个方面知识点:

1、通过HTTP POST方式获取服务端响应的JSON格式数据

json格式当前被大量应用于web数据传输,你可以在这里了解什么是json;因为服务端采用Java开发,可以采用的json库很多,比较常见的如org.json(不需要额外的jar包,Android内置json格式数据解析包就是这个;但好像对自定义实体类支持不太好,也有可能是我不会用,因为以前做web开发都是采用xml来传输服务端响应的数据),json-lib(功能强大,但需要附带一些其他jar包,其通过反射方式来实现对用户自定义bean支持),最终啥都没有采用,直接Override toString() 方法简单处理下。

复制代码
代码
    @Override
    
public  String toString() 
    {
        
if (entType  ==   1 )
        {
            
return   " {\ " id\ " : "   +  id  +   " , \ " code\ " :\ ""  + beloneto +  " \ " , \ " name\ " :\ ""  + hostName +  " \ " } " ;
        }
        
else
        {
            
return   " {\ " id\ " : "   +  id  +   " , \ " code\ " :\ ""  + beloneto +  " \ " , \ " name\ " :\ ""  + hostName 
             +   " \ " ,\n \ " entType\ " : "  + entType +  " ,\ " type\ " "  + dvrType +  " , \ " ip\ " :\ ""
            
+  ip  +   " \ " ,\n\ " channel\ " : "  + VchList.toString() +  " }\n " ;
        }
   }
复制代码

 

 

2、自定义ListView Adapter、列表项布局

可以通过自定义Adapter类灵活控制数据呈现与相关业务逻辑的处理,实现带图标显示、简单树形层次

 

3、简单数据存储配置SharedPreferences

SharedPreferences最终生成就是一个xml文件,很类似于Asp.Net开发中的Web.config或WinForm下的App.config,可以用于一些配置信息的存放,功能等同于Windows SDK开发中常用的ini文件。刚好博客园Terry_龙有一篇专门博文 Android 小项目之--数据存储【Shared Preferences】(附源码)讲述SharedPreferences的使用,大家可以参考。

4、Intent、Bundle类简单使用

    接下来再简单介绍下ImageActivity,主要是获取TreeActivity通过Bundle传递过来的视频通道ID、名称等信息,然后开启一线程,间隔指定时间实时获取该路视频的视频画面,关键就是通过URLConnection、BitmapFactorydecodeStream(InputStream is)方法生成Bitmap,然后交给ImageView控件显示。该线程与UI线程交互通过消息Handler.sendMessage(Message msg)来处理,如果连续尝试请求5次数据都失败,则弹出对话框提示用户,并关闭当前ImageActivity。

5、全球化、本地化资源

在Android上处理这方面倒是比较容易,一句话就是定义对应的资源;在res目录下新建对应目录如values-en-rUS表示用户在设置-->选择区域为美国时界面对应字符串显示,横竖屏、不同分辨率处理也是通过类似方式处理,例如drawable-land-160dpi

 

    一个好的应用服务需要好的大量内容提供支持,我在网上搜索了一把,很遗憾没有找到对外开放允许访问的设备;如果有对公共开放的,如道路监控摄像头、动物园、公园啥的,倒可以好好利用一把,看看路况,看看风景,如果能够看看大熊猫啥的那是更加好。AndroidDemo2.rar也就是说你下载到的demo是无法看到效果的,据说国外一些设备倒是支持http或rtsp访问并返回JPEG图片,也有不少设备对公众开放,如在CodeProject上看到的采用C#开发多路IP摄像机的视频监控系统(效果如图下),好像就是采用这一模式实现的。

     由于自己也是刚开始学习Android,相关资料方面 - 电子文档eoeAndroid特刊以及近期在博客园连载的大话企业级Android开发都挺不错的,可以让初学者能够快速了解什么是Android,顺利进入Android开发领域。书籍方面博客园知识库就有介绍,以及相关博客内容也很多,可以看我博文Android学习资料汇总中的简单整理;当然更加详尽的资源,如果你有安装Android sdk 可以在其目录下找一下docs文件夹, 这个是google提供的类似于msdn的本地文档库,只是好像是英文的,但内容很全,带所有api说明(汗一下先,这个当前我利用远远不够)。


本文转自peterzb博客园博客,原文链接:http://www.cnblogs.com/peterzb/archive/2010/06/21/1761892.html,如需转载请自行联系原作者

目录
相关文章
|
8天前
|
移动开发 监控 Android开发
Android & iOS 使用 ARMS 用户体验监控(RUM)的最佳实践
本文主要介绍了 ARMS 用户体验监控的基本功能特性,并介绍了在几种常见场景下的最佳实践。
|
4月前
|
网络协议 Android开发 数据安全/隐私保护
Android手机上使用Socks5全局代理-教程+软件
Android手机上使用Socks5全局代理-教程+软件
3646 2
|
8天前
|
Ubuntu Linux Android开发
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
本文介绍了如何在Android设备上安装Termux和AnLinux,并通过这些工具运行Ubuntu系统和桌面环境。
33 2
termux+anlinux+Rvnc viewer来使安卓手机(平板)变成linux服务器
|
19天前
|
Java Maven 开发工具
第一个安卓项目 | 中国象棋demo学习
本文是作者关于其第一个安卓项目——中国象棋demo的学习记录,展示了demo的运行结果、爬坑记录以及参考资料,包括解决Android Studio和maven相关问题的方法。
第一个安卓项目 | 中国象棋demo学习
|
4天前
|
Web App开发 Android开发
利用firefox调试安卓手机端web
该教程详细介绍如何通过Firefox浏览器实现手机与电脑的远程调试。手机端需安装最新版Firefox,并按指定步骤设置完成;电脑端则需安装15版及以上Firefox。设置完成后,通过工具栏中的“远程调试”选项,输入手机IP地址即可连接。连接确认后,即可使用电脑端Firefox调试器调试手机上的Web信息。注意,调试前手机需提前打开目标网页。
16 2
|
18天前
|
监控 安全 Java
Kotlin 在公司上网监控中的安卓开发应用
在数字化办公环境中,公司对员工上网行为的监控日益重要。Kotlin 作为一种基于 JVM 的编程语言,具备简洁、安全、高效的特性,已成为安卓开发的首选语言之一。通过网络请求拦截,Kotlin 可实现网址监控、访问时间记录等功能,满足公司上网监控需求。其简洁性有助于快速构建强大的监控应用,并便于后续维护与扩展。因此,Kotlin 在安卓上网监控应用开发中展现出广阔前景。
13 1
|
1天前
|
Web App开发 编解码 视频直播
视频直播技术干货(十二):从入门到放弃,快速学习Android端直播技术
本文详细介绍了Android端直播技术的全貌,涵盖了从实时音视频采集、编码、传输到解码与播放的各个环节。文章还探讨了直播中音视频同步、编解码器选择、传输协议以及直播延迟优化等关键问题。希望本文能为你提供有关Andriod端直播技术的深入理解和实践指导。
6 0
|
1月前
|
Android开发
Android学习 —— 测试init.rc中的条件触发的处理顺序
Android学习 —— 测试init.rc中的条件触发的处理顺序
|
2月前
|
搜索推荐 Android开发
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
本文分享了不同价位电脑配置对于编译AOSP安卓系统源代码的影响,提供了从6000元到更高价位的电脑配置实例,并比较了它们的编译时间,以供学习AOSP源代码时电脑配置选择的参考。
141 0
学习AOSP安卓系统源代码,需要什么样的电脑?不同配置的电脑,其编译时间有多大差距?
|
2月前
|
Android开发
【Azure 环境】记录使用Notification Hub,安卓手机收不到Push通知时的错误,Error_Code 30602 or 30608
【Azure 环境】记录使用Notification Hub,安卓手机收不到Push通知时的错误,Error_Code 30602 or 30608