最近做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 hal层开发的人一看。 从这个图来看Sensor的架构还是非常的清淅, 黄色部分表示硬件,它要挂在I2C总线上 红色部分表示驱动,把驱动注册到Kernel的Input Subsystem上,然后通过Event Device把Sensor...
在基于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远程控制,特别是机顶盒
在Android开发中,获取GPS定位数据是常见的需求,主要用于实现地图导航、位置服务等功能。本文将详细介绍如何通过源代码在Android设备上获取GPS定位信息,并将其存储到SQLite本地数据库中。 首先,Android系统提供...
在Android开发中,将数据写入到本地Excel文件是一个常见的需求,这通常涉及到对数据的存储和导出功能。在本教程中,我们将探讨如何在Android应用中实现这个功能,主要涉及的技术点包括使用第三方库Apache POI以及...
在Android开发中,有时我们需要将应用内部的数据导出为Excel表格,以便用户可以方便地查看、编辑或在其他系统中使用。"Android数据转化为Excel表格导入导出"这个主题涉及了如何在Android环境中处理数据并将其转换成...
在Android平台上,获取USB扫描枪的数据通常涉及到对设备的USB访问权限、监听设备连接状态以及解析接收到的数据。本文将详细讲解如何在Android系统中实现无界面获取USB扫描枪的数据。 首先,理解USB扫描枪的基本原理...
在Android应用开发中,客户端与服务器之间的数据交互是不可或缺的一部分,尤其在当今互联网时代,用户需求不断增长,数据交换的需求也日益复杂。本教程将深入探讨Android客户端如何与服务器进行有效的数据交互,以及...
两部手机连接wifi后,通过socket进行数据传输 说明: 测试需要两部安卓手机A,B。A手机创建WIFI热点作为服务器,B手机连接A手机WIFI热点,作为客户端。 //A手机服务器 接收数据步骤:1点击创建Wifi热点2点击"turn_on_...
在Android开发中,串口通信(Serial Port Communication)是一种重要的技术,它允许设备之间通过串行接口进行数据交换。在Android Studio环境下实现串口通信,开发者可以构建与硬件设备交互的应用,例如读取传感器...
本教程将详细介绍如何在Android应用中实现蓝牙4.0的扫描、连接、发送数据、接收数据以及获取RSSI(Received Signal Strength Indicator,信号强度指示器)值的关键步骤。 首先,确保你的Android设备支持蓝牙4.0并...
可以查找蓝牙设备,建立连接,传输心电数据并画出波形图。 如果要进行测试,请在有蓝牙适配器的电脑上安装支持虚拟蓝牙串口的驱动,如IVT WILDCOM等。用手机搜索电脑,配对完成后建立连接,电脑任务栏将会出现“设备...
5. **初始化串口**:使用第三方库(如Android UsbSerial库)创建一个`UsbSerialPort`对象,设置波特率、数据位、停止位、校验位等串口参数。 6. **读写数据**:通过`UsbSerialPort`的`read()`和`write()`方法实现...
在Android平台上进行局域网数据传输,特别是在热点局域网环境下,通常会涉及到网络编程的基础知识,特别是Socket通信。Socket是TCP/IP协议族的一部分,它为应用程序提供了低级别的、进程间的数据通信机制,使得两台...
在Android开发中,实现一个能够从服务器获取JSON数据并展示在ListView中,同时支持下拉刷新和上拉加载的功能是一项常见的需求。这个"Android服务器解析json数据实现下拉刷新上拉加载ListView显示"的示例项目,就是...