最近做android手机数据上报,这里有点个人心得,希望抛砖引玉。
做数据上报必须解决的问题:
1、首先要保证你的程序一直在于后台运行,也就是所谓和守护程序一样,而且在任何认为kill和系统内存回收kill后,保证重启。
2、获取系统内部资源。
3、上报策略,间隔时间上报还是按月按天上报。
4、监测网络,当网络开启的时候第一时间上报数据。
5、服务器连接。
对于以上问题的解决:
1、利用广播BroadcastReceiver监听,当系统启动时启动服务service,监听的action是android.intent.action.BOOT_COMPLETED,当服务被kill时在onDestroy()再次启动服务,在onStartCommand()中 设置 flags = START_STICKY;return super.onStartCommand(intent, flags, startId),保证服务重启。
2、利用getPackageManager(),getInstalledPackages(),getApplicationInfo()来获取系统安装数据。
3、上报策略可以每天(时间间隔24小时),但是不是很准确,一般按日上报不做时间间隔这样个人认为比较准确。
4、检测开启网络上报数据,还是利用广播BroadcastReceiver监听,监听action为android.net.conn.CONNECTIVITY_CHANGE,当发现网络开启时就触发数据上报。
5、服务器连接,如果你了解java熟悉java企业级开发,那么你对httpclient并不陌生,很幸运的是android sdk已经集成了httpclient,那我们服务器连接首选它了。
以上是我做的解决方案,你是否有更好的替代品,希望我只是抛了块砖头,后面你继续。。。。
分享到:
相关推荐
在Android开发中,数据抓取是一项重要的技能,尤其在实现在线音乐搜索和播放功能时。本项目通过使用jsoup库,展示了如何从虾米音乐网站抓取相关歌曲数据,包括专辑图片、歌词以及歌曲的播放路径等关键信息。jsoup是...
在基于Android的分布式系统中,一旦分中心接收到数据后,系统需要将数据上报到远程服务器上,以便进行进一步的数据分析和处理。这一过程涉及到数据封装、网络传输、服务器端数据接收和存储等技术环节。 6. 无线...
在Android平台上,蓝牙数据传输是一项常见的功能,尤其在设备间通信和物联网(IoT)应用中。本"android 蓝牙数据传输DEMO"提供了一个基础的实现,包括了蓝牙服务端(Server)和客户端(Client)的角色,让你可以在两台...
本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 首先,我们需要了解`Android WebView`。WebView是Android系统提供的一种组件,它能够加载并显示网页内容,就像是...
Android DataBinding是Google推出的一种强大的数据绑定库,它旨在简化Android应用中的UI逻辑,通过将视图和数据模型直接关联起来,减少代码量并提高可读性。在本篇文章中,我们将深入探讨如何使用这个框架。 一、...
在Android平台上,NFC(Near Field Communication)技术是一种短距离无线通信技术,允许设备在靠近时交换数据。本文将深入探讨如何实现Android应用中的NFC数据读取和写入功能,这对于开发移动应用或者对物联网感兴趣...
在Android开发中,获取GPS定位数据是常见的需求,主要用于实现地图导航、位置服务等功能。本文将详细介绍如何通过源代码在Android设备上获取GPS定位信息,并将其存储到SQLite本地数据库中。 首先,Android系统提供...
在Android开发中,将数据写入到本地Excel文件是一个常见的需求,这通常涉及到对数据的存储和导出功能。在本教程中,我们将探讨如何在Android应用中实现这个功能,主要涉及的技术点包括使用第三方库Apache POI以及...
在Android开发中,有时我们需要将应用内部的数据导出为Excel表格,以便用户可以方便地查看、编辑或在其他系统中使用。"Android数据转化为Excel表格导入导出"这个主题涉及了如何在Android环境中处理数据并将其转换成...
在Android平台上,获取USB扫描枪的数据通常涉及到对设备的USB访问权限、监听设备连接状态以及解析接收到的数据。本文将详细讲解如何在Android系统中实现无界面获取USB扫描枪的数据。 首先,理解USB扫描枪的基本原理...
两部手机连接wifi后,通过socket进行数据传输 说明: 测试需要两部安卓手机A,B。A手机创建WIFI热点作为服务器,B手机连接A手机WIFI热点,作为客户端。 //A手机服务器 接收数据步骤:1点击创建Wifi热点2点击"turn_on_...
在Android开发中,串口通信(Serial Port Communication)是一种重要的技术,它允许设备之间通过串行接口进行数据交换。在Android Studio环境下实现串口通信,开发者可以构建与硬件设备交互的应用,例如读取传感器...
可以查找蓝牙设备,建立连接,传输心电数据并画出波形图。 如果要进行测试,请在有蓝牙适配器的电脑上安装支持虚拟蓝牙串口的驱动,如IVT WILDCOM等。用手机搜索电脑,配对完成后建立连接,电脑任务栏将会出现“设备...
5. **初始化串口**:使用第三方库(如Android UsbSerial库)创建一个`UsbSerialPort`对象,设置波特率、数据位、停止位、校验位等串口参数。 6. **读写数据**:通过`UsbSerialPort`的`read()`和`write()`方法实现...
在Android平台上进行局域网数据传输,特别是在热点局域网环境下,通常会涉及到网络编程的基础知识,特别是Socket通信。Socket是TCP/IP协议族的一部分,它为应用程序提供了低级别的、进程间的数据通信机制,使得两台...
在Android开发中,实现一个能够从服务器获取JSON数据并展示在ListView中,同时支持下拉刷新和上拉加载的功能是一项常见的需求。这个"Android服务器解析json数据实现下拉刷新上拉加载ListView显示"的示例项目,就是...
标题中的“电信设备-一种Android移动终端升级上报方法及系统”揭示了这个压缩包内容主要涉及的是Android操作系统在电信设备上的应用,特别是关于移动终端的软件升级和数据上报的机制。这种技术通常是为了确保设备的...
在Android开发中,ListView是一种常用的组件,用于展示大量的列表数据。在某些应用场景中,比如日程管理、消息通知等,我们可能需要将这些数据按照时间或日期进行分组,以便用户能更清晰地查看和理解信息。本示例...
本文将详细讲解如何在Android端使用GET和POST方法提交数据到服务器,并结合传智播客张泽华Android视频54-57中的代码示例进行解析。 一、GET方法 GET方法是最简单的HTTP请求方式,常用于获取服务器上的资源。在...
5. **模板设计与数据绑定**: 设计模板时,我们需要定义好占位符,比如`${variable}`,然后在Java或Android代码中创建一个数据模型,包含要插入的数据。当渲染模板时,Freemarker会将这些数据填充到对应的占位符中。 ...