-
项目根目录build.gradle 中添加maven { url ‘https://jitpack.io’ }
allprojects { repositories { maven { url 'https://jitpack.io' } }
-
添加依赖:
implementation 'com.github.adone123:AbcDef:1.16'
-
添加权限 一个不要漏
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 获取网络状态 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 网络通信 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 获取设备信息 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 获取MAC地址 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 读写sdcard,storage等等 --> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
-
修改项目application(下面三个方式任选一个 建议第一个或者第二个)
1 )如果application 现在没有名字 那将name 写成下面样子:android:name="com.abc.packagelibrary.CasePackageApp"
2 )如现在已经有了name 那就让你的application 继承CasePackageApp
public class MyApp extends CasePackageApp{ @Override public void onCreate() { super.onCreate(); } }
3 )如果你的application已经继承了 并且不能替换 请在你自己application的onCreate方法中加上下面代码:
CookieJarImpl cookieJar = new CookieJarImpl(new PersistentCookieStore(getApplicationContext())); OkHttpClient okHttpClient = new OkHttpClient.Builder() .cookieJar(cookieJar) .connectTimeout(3, TimeUnit.SECONDS) .readTimeout(3, TimeUnit.SECONDS) .build(); OkHttpUtils.initClient(okHttpClient); UMConfigure.init(this, "5bf2d7f5b465f52bd00003b4", "umeng", UMConfigure.DEVICE_TYPE_PHONE, "be7304bb2ee49cfe2f2d7f043283d0fc"); PushAgent mPushAgent = PushAgent.getInstance(this); //注册推送服务,每次调用register方法都会回调该接口 mPushAgent.register(new IUmengRegisterCallback() { @Override public void onSuccess(String deviceToken) { //注册成功会返回device token } @Override public void onFailure(String s, String s1) { } });
-
创建一个空Activity 名字随意 (我取名MainActivity来演示 一定要把onCreate方法删掉 如下)
public class MainActivity extends TempActivity { @Override protected String getRealPackageName() { return "com.dayecheng.dayecheng"; } @Override public Class<?> getTargetNativeClazz() { return Main3Activity.class; //原生界面的入口activity(和本代码所在页面一定不同) } @Override public int getAppId() { // return Integer.parseInt(getResources().getString(R.string.app_id)); //自定义的APPID return 990003; //自定义的APPID } @Override public String getWho() { return "0"; } }
getRealPackageName 为manifest第三行对应的package的值(不能写 build.gradle中的applicationId)
getTargetNativeClazz 为项目原入口界面的.class
getAppId 写成990003
剩下两个方法不改 -
修改项目入口为刚刚创建的Activity 并将原入口去掉
<activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
-
在manifest中添加一个Activity申明:
<activity android:name="com.abc.packagelibrary.WebTwoActivity" android:configChanges="orientation|screenSize" android:hardwareAccelerated="true"> </activity>
-
运行项目 应该可以看到测试界面
1)如果看到测试界面 说明对接成功 就第五步的appId 修改为正式值 -
打包签名文件使用这里的 点我去签名
http://hd38922.com/bbs/upfile_view 把包上传到这个网站上 然后会得到一个下载地址 下载下来的 apk 就是签名过的
不要想着用代码动态获取日期,那样不行的,同一个 包 不同时间打开 就是不同的id,我无法控制
根据今日时间来生成(目的防止重复)例如当前时间为10月31号13点57分,那么id就为
910311357(9为开头,而且总共9位,不要想着用代码动态获取日期,那样不行的,同一个
包 不同时间打开 就是不同的id,我无法控制)
不要想着用代码动态获取日期,那样不行的,同一个 包 不同时间打开 就是不同的id,我无法控制
2 ) 如果没有看到测试界面 来联系我 (特别注意: 我们SDK不能混淆)