推送、 数据统计、 代码版本管理工具
来源:互联网 发布:html中js用函数传值 编辑:程序博客网 时间:2024/04/30 16:09
推送
以百度推送为例,昨天已给出manifest的例子,这里给出Receiver,继承PushMessageReceiver,复写其中的方法,其中最重要的是onMessage、onNotificationClicked、onNotificationArrived三个方法。
package com.example.administrator.mysensordemo;import android.content.Context;import android.content.Intent;import android.util.Log;import com.baidu.android.pushservice.PushMessageReceiver;import org.json.JSONException;import org.json.JSONObject;import java.util.List;/** * Created by Administrator on 2015/9/23. */public class MyPushMessageReceiver extends PushMessageReceiver { @Override public void onBind(Context context, int i, String s, String s1, String s2, String s3) { } @Override public void onUnbind(Context context, int i, String s) { } @Override public void onSetTags(Context context, int i, List<String> list, List<String> list1, String s) { } @Override public void onDelTags(Context context, int i, List<String> list, List<String> list1, String s) { } @Override public void onListTags(Context context, int i, List<String> list, String s) { } @Override public void onMessage(Context context, String message, String customContentString) { String messageString = "透传消息 message=\"" + message + "\" customContentString=" + customContentString; Log.d(TAG, messageString); } @Override public void onNotificationClicked(Context context, String title, String description, String customContentString) { String notifyString = "通知点击 title=\"" + title + "\" description=\"" + description + "\" customContent=" + customContentString; Log.d("MyPush", "接收到的消息"+"onNotificationClicked"+notifyString); try { JSONObject object = new JSONObject(customContentString); String className = object.getString("startActivity"); Intent intent = new Intent(context,Class.forName(context.getPackageName()+"."+className)); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent); } catch (JSONException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); } } @Override public void onNotificationArrived(Context context, String title, String description, String customContentString) { String notifyString = "onNotificationArrived title=\"" + title + "\" description=\"" + description + "\" customContent=" + customContentString; Log.d(TAG, notifyString); }}
数据统计
数据统计主要有两个作用,用户分析和应用分析,其中用户分析是针对地域、下载渠道、用户年龄等等,而应用分析是针对错误日志、界面停留时间、应用打开次数等等。
以百度数据统计为例,同样需要导入jar包和so文件,同样需要用包名申请key,同样需要加入权限。因为所有的Activity都需要复写onResume和onPause方法,所以写一个BaseActivity继承Activity,复写两个方法,然后所有的Activity都继承BaseActivity。下面给出manifest和BaseActivity的例子。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.administrator.mylocationdemo" > <!-- 这个权限用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission> <!-- 这个权限用于访问GPS定位--> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位--> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <!-- 获取运营商信息,用于支持提供运营商信息相关的接口--> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <!-- 这个权限用于获取wifi的获取权限,wifi信息会用来进行网络定位--> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <!-- 用于读取手机当前的状态--> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据--> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <!-- 访问网络,网络定位需要上网--> <uses-permission android:name="android.permission.INTERNET" /> <!-- SD卡读取权限,用户写入离线定位数据--> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_DOWNLOAD_MANAGER"/> <uses-permission android:name="android.permission.DOWNLOAD_WITHOUT_NOTIFICATION" /> <uses-permission android:name="android.permission.DISABLE_KEYGUARD" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 必须申明的权限 --> <uses-permission android:name="android.permission.INTERNET" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" > </uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" > </uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE" > </uses-permission> <uses-permission android:name="android.permission.WRITE_SETTINGS" > </uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- 您从百度网站获取的APP KEY --> <meta-data android:name="com.baidu.lbsapi.API_KEY" android:value="yrDY98WCG2Dt1X010SBxYv3R" /> //key:开发者申请的key <meta-data android:name="BaiduMobAd_STAT_ID" android:value="8594056ea9" /> <!-- abcd1234 --> <!-- 渠道商编号 --> <meta-data android:name="BaiduMobAd_CHANNEL" android:value="Baidu Market" /> <!-- 是否开启错误日志统计,默认为false --> <meta-data android:name="BaiduMobAd_EXCEPTION_LOG" android:value="true" /> <!-- 日志发送策略,可选值:APP_START、ONCE_A_DAY、SET_TIME_INTERVAL,默认为APP_START --> <meta-data android:name="BaiduMobAd_SEND_STRATEGY" android:value="APP_START" /> <!-- 日志发送策略 为SET_TIME_INTERVAL时,需设定时间间隔(取消下行注释)。取值为1-24的整数,默认为1 --> <!-- <meta-data android:name="BaiduMobAd_TIME_INTERVAL" android:value="2" /> --> <!-- 日志仅在wifi网络下发送,默认为false --> <meta-data android:name="BaiduMobAd_ONLY_WIFI" android:value="false" /> <!-- 是否获取基站位置信息 ,默认为true --> <meta-data android:name="BaiduMobAd_CELL_LOCATION" android:value="true" /> <!-- 是否获取GPS位置信息,默认为true --> <meta-data android:name="BaiduMobAd_GPS_LOCATION" android:value="true" /> <!-- 是否获取WIFI位置信息,默认为true --> <meta-data android:name="BaiduMobAd_WIFI_LOCATION" android:value="true" /> <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"> </service> </application></manifest>
package com.example.administrator.mylocationdemo;import android.app.Activity;import android.content.Context;import com.baidu.mobstat.StatService;/** * Created by Administrator on 2015/9/23. */public class BaseActivity extends Activity { @Override protected void onResume() { super.onResume(); StatService.onResume(this); } @Override protected void onPause() { super.onPause(); StatService.onPause(this); }}
代码管理工具
代码管理工具有两种,SVN和Git,一般公司常用的是SVN。
SVN分服务器和客户端,下面给出两个的下载链接:
服务器:https://www.visualsvn.com/downloads/
客户端:http://tortoisesvn.net/downloads.html
0 0
- 推送、 数据统计、 代码版本管理工具
- 开发代码版本管理工具
- 使用git版本管理工具上传代码到码云
- 代码统计工具-python版本
- 使用项目管理工具对Svn代码查看和统计
- 代码管理工具
- 代码管理工具
- 代码管理工具
- 代码管理工具
- 代码管理工具
- 代码统计工具1.1版本技术文档
- 统计两个版本之间代码变更行数
- spark sql版本的单词统计代码
- 友盟数据统计、消息推送、社会化分享
- alfresco repository 不同版本的代码统计和版本差异
- hg版本管理工具使用
- 分布版本管理工具
- 版本管理工具SVN
- 安卓:系统及自定义的ActionBar视图
- textField验证字数
- BigDecimal类型比较大小
- eclipse启动不了
- leetcode-36 Valid Sudoku
- 推送、 数据统计、 代码版本管理工具
- shell if =判断
- 杭电ACM2061java做法(PE)
- Python函数参数中的星号*(关键字参数与非关键字参数)
- 要注意的基础知识!
- js 中将string转化为double,避免产生多位数和计算精度损失。
- hdu5239Doom 线段树+找规律
- VC++编译器调试(一)
- Android判断当前线程是否是主线程的方法