Android一点 让eclipse全功能支持Google Firebase
2017-06-20 15:19
591 查看
谷歌抛弃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,文件包含的主要是下面这些信息,这时候应该想到这个是初始化需要用到的参数
下面再具体分析string.xml、AndroidManifest.xml到底增加了些什么呢?
string.xml增加了:
AndroidManifest.xml增加了
权限:
其它什么鬼:
3、看看怎么初始化Firebase
例如怎么上报分析数据,login数据
看看log是否接入成功:
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_id gcm_defaultSenderId: project_info/project_number default_web_client_id: {YOUR_CLIENT}/oauth_client/client_id (client_type == 3) ga_trackingId: {YOUR_CLIENT}/services/analytics-service/analytics_property/tracking_id firebase_database_url: project_info/firebase_url google_api_key: {YOUR_CLIENT}/api_key/current_key google_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是否接入成功:
相关文章推荐
- Android一点 让eclipse也支持FCM(Firebase Cloud Messaging)
- google firebase sdk android lib download
- Google已正式结束对Eclipse Android开发工具的支持
- Google Firebase 消息通知 android + nodejs 以及.net的实现
- android 开发环境搭建 eclipse支持,解决dl-ssl.google.com资源下载不动问题
- 三星Android 4.4.x系统 java.lang.NoClassDefFoundError: com/google/firebase/FirebaseApp
- Android Google广告开发 Firebase、AdMob
- Google将不再支持Android Eclipse Tools
- 让开发Android的eclipse工具支持类似VS的#Region指令格式的代码收缩功能
- Graphics->BitmapDecode 介绍Android 平台对图像的解码功能,Android平台支持PNG, JPEG图像格式,并可以支持 gif动画。
- 关于android开发时,eclipse的函数自动提示功能很卡的问题解决方法
- 让Eclipse支持jQuery和jQueryUI代码自动完成功能
- Eclipse For Android 代码自动提示功能
- How to use eclipse to debug android source(from google official site)
- 为什么eclipse里找不到com.google.android.maps.MapActivity;
- Android再添新功能 支持汉语语音指令
- 百度手机地图Android版新增支持增强现实功能
- Android进阶:Google自带语音播放功能实现