Android一点 让eclipse全功能支持Google Firebase
来源:互联网 发布:细胞因子的网络特征 编辑:程序博客网 时间:2024/06/06 19:41
谷歌抛弃eclipse已久,但是eclipse档还是很多人,这不,想用谷歌的firebase做分析、推送等功能时,使用eclipse的就尴尬了,谷歌没有提供支持了。下面我们就分析一下怎么制作我们eclipse的firebase库
1、Firebase入门官网文档:https://firebase.google.com/docs/android/setup
官方的示例:https://firebase.google.com/docs/samples/#android
对于Android studio接入firebase这里就不叙述了,因为实在是比较简单,这里了解firebase就行
2、我们以分析功能为例子,编译Analytics工程即可,为啥呢,之前没有了解的可以看上一篇文章,有详情的介绍。反编译一下这个apk,着重看看string.xml文件和AndroidManifest.xml文件,看看到底增加了什么鬼,对了,关于google-services.json 文件信息的作用说明https://developers.google.com/android/guides/google-services-plugin,文件包含的主要是下面这些信息,这时候应该想到这个是初始化需要用到的参数
The main result of the JSON processing is to produce two XML files which you can reference as Android resources in your Java code. Below is an example of each file:app/build/generated/res/google-services/{build_type}/values/values.xml<?xml version="1.0" encoding="utf-8"?><resources> <! -- Present in all applications --> <string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string> <! -- Present in applications with the appropriate services configured --> <string name="gcm_defaultSenderId" translatable="false">1035469437089</string> <string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string> <string name="ga_trackingId" translatable="false">UA-65557217-3</string> <string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string> <string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string></resources>app/build/generated/res/google-services/{flavor}/{build_type}/xml/global_tracker.xml<?xml version="1.0" encoding="utf-8"?><resources> <string name="ga_trackingId" translatable="false">UA-65557218-3</string></resources>Every value in the XML files is present in the google-services.json file at the locations below. If your Android project has some configuration that prevents you from using the google-services plugin, you can safely recreate the XML files manually using these values:google_app_id:{YOUR_CLIENT}/client_info/mobilesdk_app_idgcm_defaultSenderId:project_info/project_numberdefault_web_client_id:{YOUR_CLIENT}/oauth_client/client_id (client_type == 3)ga_trackingId:{YOUR_CLIENT}/services/analytics-service/analytics_property/tracking_idfirebase_database_url:project_info/firebase_urlgoogle_api_key:{YOUR_CLIENT}/api_key/current_keygoogle_crash_reporting_api_key:{YOUR_CLIENT}/api_key/current_key
下面再具体分析string.xml、AndroidManifest.xml到底增加了些什么呢?
string.xml增加了:
<! -- Present in all applications --> <string name="google_app_id" translatable="false">1:1035469437089:android:73a4fb8297b2cd4f</string> <! -- Present in applications with the appropriate services configured --> <string name="gcm_defaultSenderId" translatable="false">1035469437089</string> <string name="default_web_client_id" translatable="false">337894902146-e4uksm38sne0bqrj6uvkbo4oiu4hvigl.apps.googleusercontent.com</string> <string name="ga_trackingId" translatable="false">UA-65557217-3</string> <string name="firebase_database_url" translatable="false">https://example-url.firebaseio.com</string> <string name="google_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string> <string name="google_crash_reporting_api_key" translatable="false">AIzbSyCILMsOuUKwN3qhtxrPq7FFemDJUAXTyZ8</string>
AndroidManifest.xml增加了
权限:
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <permission android:name="包名.permission.C2D_MESSAGE" android:protectionLevel="signature|signatureOrSystem" /> <uses-permission android:name="包名.permission.C2D_MESSAGE" />
其它什么鬼:
<receiver android:name="com.google.android.gms.measurement.AppMeasurementReceiver" android:enabled="true" android:exported="false" /> <receiver android:name="com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver" android:enabled="true" android:exported="true" android:permission="android.permission.INSTALL_PACKAGES" > <intent-filter> <action android:name="com.android.vending.INSTALL_REFERRER" /> </intent-filter> </receiver> <service android:name="com.google.android.gms.measurement.AppMeasurementService" android:enabled="true" android:exported="false" /> <service android:name="com.google.android.gms.measurement.AppMeasurementJobService" android:enabled="true" android:exported="false" android:permission="android.permission.BIND_JOB_SERVICE" /> <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdReceiver" android:exported="true" android:permission="com.google.android.c2dm.permission.SEND" > <intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <category android:name="包名" /> </intent-filter> </receiver> <receiver android:name="com.google.firebase.iid.FirebaseInstanceIdInternalReceiver" android:exported="false" /> <service android:name="com.google.firebase.iid.FirebaseInstanceIdService" android:exported="true" > <intent-filter android:priority="-500" > <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> </intent-filter> </service> <provider android:name="com.google.firebase.provider.FirebaseInitProvider" android:authorities="包名.firebaseinitprovider" android:exported="false" android:initOrder="100" /> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
3、看看怎么初始化Firebase
/** * 初始化FirebaseApp */ public static boolean init(Context context) { if (FirebaseApp.getApps(context).isEmpty()) { try { FirebaseOptions options = FirebaseOptions.fromResource(context); FirebaseApp.initializeApp(context, options); } catch (Exception e) { // TODO: handle exception e.printStackTrace(); return false; } } return true; }
例如怎么上报分析数据,login数据
/** * 獲取FirebaseAnalytics * * @param context * @return */ public static FirebaseAnalytics getFirebaseAnalytics(Context context) { if (mFirebaseAnalytics == null) { mFirebaseAnalytics = FirebaseAnalytics.getInstance(context); } return mFirebaseAnalytics; } /** * firebase的登录事件 * * @param context */ public static void fireBaseLoginEvent(Context context) { Bundle params = new Bundle(); getFirebaseAnalytics(context).logEvent(FirebaseAnalytics.Event.LOGIN, params); }
看看log是否接入成功:
阅读全文
0 0
- Android一点 让eclipse全功能支持Google Firebase
- Android一点 让eclipse也支持FCM(Firebase Cloud Messaging)
- google firebase sdk android lib download
- Android Google广告开发 Firebase、AdMob
- Android计入Google FireBase之消息推送
- Android一点 打造全功能适配AutoView
- Google将不再支持Android Eclipse Tools
- Google将不再支持Android Eclipse Tools
- 让android studio 支持 eclipse NDK工程
- Android Google的firebase云消息的使用。
- Google Firebase 消息通知 android + nodejs 以及.net的实现
- 转:让vim支持c++代码自动补全功能
- 让vim支持c++代码自动补全功能。
- Eclipse支持java和xml文件的代码补全功能
- 让eclipse的代码补全功能更好用
- 让WordPress支持google AMP
- Google FireBase的简单介绍
- Firebase Android 使用整理
- 【算法题】创造新世界
- 蛇形填数2
- cx_Oracle安装教程
- 简单图片查看器小程序源代码实现
- 认清函数的真面目
- Android一点 让eclipse全功能支持Google Firebase
- Kafka基础(一)
- Centos6.X搭建ClouderaManager的YUM源
- 简单的极光推送
- 【WPF】将数据显示到DataGrid
- Andorid 中TouchEvent理解(三) TouchEvent分发机制(onInterceptTouchEvent()回调返回值区别)
- form表单上传附件的几种方法
- 通信猫调试软件(WINDOWS单文件绿色版 串口/并口/USB/TCP/UDP/HTTP/二维码。。。)
- 基于VxWorks系统的NVMe驱动