AndroidStudio Gradle基于友盟的多渠道打包方法
程序员文章站
2023-12-15 16:23:16
androidstudio由于使用了gradle的进行项目构建,使我们开发app方便很多,今天我就给大家列出几点是用gradle的方便之处。
一、androidstudi...
androidstudio由于使用了gradle的进行项目构建,使我们开发app方便很多,今天我就给大家列出几点是用gradle的方便之处。
一、androidstudio gradle第三依赖统一管理
二、androidstudio gradle基于友盟的多渠道打包
三、androidstudio安全管理签名文件keystroe和签名密码
好久没写博客了,今天写一篇关于多渠道打包的文章。
首先我们要下载友盟的jar包,然后照着文档配置即可。(这里就不过多讲解了,直接看我的代码)
文档地址:http://dev.umeng.com/analytics/android-doc/integration?spm=0.0.0.0.szgw63
这是我的mainactivity
public class mainactivity extends appcompatactivity { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); // 场景类型设置接口,设置为普通统计场景类型 mobclickagent.setscenariotype(this, escenariotype.e_um_normal); string appkey = ""; string channal = ""; try { appkey = packagemanageruitls.getmatedatavalue(this, "umeng_appkey"); channal = packagemanageruitls.getmatedatavalue(this, "umeng_channel"); } catch (packagemanager.namenotfoundexception e) { e.printstacktrace(); } mobclickagent.umanalyticsconfig config = new mobclickagent.umanalyticsconfig(this, appkey, channal); mobclickagent.startwithconfigure(config); } public void onresume() { super.onresume(); mobclickagent.onresume(this); } public void onpause() { super.onpause(); mobclickagent.onpause(this); } }
这里写了一个工具类,获取清单文件的meta-data节点对应的值
/** * 作者:lcw 16-9-8 * 博客:http://blog.csdn.net/lsyz0021/ */ public class packagemanageruitls { /** * 获取 androidmanifest中application节点下meta-data节点的值 * * @param context * @param key * @return * @throws packagemanager.namenotfoundexception */ public static string getmatedatavalue(context context, string key) throws packagemanager.namenotfoundexception { applicationinfo appinfo = context.getpackagemanager().getapplicationinfo(context.getpackagename(), packagemanager.get_meta_data); string msg = appinfo.metadata.getstring(key); return msg; } }
这是清单文件的配置
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hfax.umeng"> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.access_wifi_state" /> <uses-permission android:name="android.permission.internet" /> <uses-permission android:name="android.permission.read_phone_state" /> <application android:allowbackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsrtl="true" android:theme="@style/apptheme"> <meta-data android:name="umeng_appkey" android:value="57d11e6467e58e9051000d7e" /> <meta-data android:name="umeng_channel" android:value="${umeng_channel_value}" /> <meta-data android:name="base_url" android:value="${base_url}" /> <activity android:name=".mainactivity"> <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest>
下面是核心的gredle配置
这里是测环境的配置(可以不配置,不影响多渠道)
渠道配置
打包生成apk
安装测试
首先测试安装包到友盟官网的渠道列表中可以看了。