# AndLang
**Repository Path**: wugemu_admin_admin/AndLang
## Basic Information
- **Project Name**: AndLang
- **Description**: 基础库
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-02-08
- **Last Updated**: 2025-11-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# AndNyso 基础库
一.本地基础库提交至远程仓库
1.在lib项目gradle中添加以下配置
/*NEXUS_USERNAME 用户名
NEXUS_PASSWORD 用户密码*/
apply plugin: 'maven'
uploadArchives {
configuration = configurations.archives
repositories {
mavenDeployer {
repository(url: "http://192.168.11.244:8086/repository/nysoapp/"){
authentication(userName: NEXUS_USERNAME, password: NEXUS_PASSWORD)
}
pom.project {
version '1.0.0'
artifactId 'andlang'
groupId 'com.nyso.library'
packaging 'aar'
description '基础库'
}
}
}
}
2.执行uploadArchives,上传arr包到私有库NEXUS
3.lib库依赖的库也需要使用相同方法上传远程仓库
二.引入远程基础库
1.在根build.gradle中添加maven链接
maven { url 'http://192.168.11.244:8086/repository/nysoapp/'}
2.在app的build.gradle中引用
implementation 'com.nyso.library:andlang:1.0.0'
三.基础库使用
继承BaseLangApplication子类中调用以下功能方法
1.友盟统计
UMConfigure.init(this, UMConfigure.DEVICE_TYPE_PHONE, null);
MobclickAgent.setScenarioType(this, MobclickAgent.EScenarioType.E_UM_NORMAL);
/** 设置是否对日志信息进行加密, 默认false(不加密). */
MobclickAgent.enableEncrypt(true);
MobclickAgent.setCatchUncaughtExceptions(true);//false关闭友盟默认错误统计 使用自定义统计上传错误
2.Glide图片加载工具初始化
initImageLoad();
//使用ImageLoadUtils加载图片,支持gif动态
3.奔溃日志存储本地功能初始化
//dirPath 日志记录路径
initCrashLog("/nyso/crash/");
4.安装防崩溃功能
installCockroach();
//最大化防止应用crash 需要在清单中注册DebugSafeModeTipActivity
5.bugly统计初始化 https://bugly.qq.com/v2/
/*appId 平台提供的appid
*userId 自定义用户id
*channelKeyName AndroidManifest.xml中设置的渠道key值 注意:不是value的值 */
initBugly("","","UMENG_CHANNEL");
//app自定义错误上传
CrashLog.postBuglyException()
//其它自定义错误上传
CrashLog.postExcForOther()
//网络请求超时或域名解析报错的错误上报,会判断网络是否真正连接
CrashLog.postExcForNet()
6.MMKV 数据存储 替换SharePreference
//MMKV SharePreference 数据迁移到
MMKVUtil.changeMMKV(this);
7.图片临时文件夹名称设置
//图片临时存储文件夹名称
initCacheName("nyso");
8.get网络缓存添加支持本地缓存策略
useLocalCache字段传参为true使用本地缓存策略
使用本地缓存时,若命中本地缓存回调方法
/*
*cache 本地缓存数据
*/
onCacheData(String cache)
注意:本地缓存回调后,若网络请求(包括网络缓存)成功后,还会继续回调方法
/*response 网络返回报文
*useLocalCache 是否使用本地缓存
*haveLocalCache 本地是否有缓存
*cacheUrl 缓存的key
*/
onResponse(String response,boolean useLocalCache,boolean haveLocalCache,String cacheUrl);
9.HttpConfig 网络配置文件
HttpConfig.tmpImageDir="nyso";//配置文件下载sd文件夹,默认nyso
HttpConfig.imgUpDefName="pic";//图片文件上传接口后台定义的接收文件的参数名称,由后台提供,默认pic
HttpConfig.cookieName="JSSIONID";//有效的cookie名称,用户登录标识,由后台提供,默认JSSIONID
//401 //未登录状态
//20001 商品数据不存在
//200002 通用数据不存在
//4901 版本更新检查code
HttpConfig.addCodeConfig(401,"未登录状态");
HttpConfig.addCodeConfig(20001,"商品数据不存在");
HttpConfig.addCodeConfig(200002,"通用数据不存在");
HttpConfig.addCodeConfig(4901,"版本更新检查code");
10.摇一摇切换环境功能
/*获取当前环境字符串 环境指如下
*HOST_DEBUG="SplashActivity_debug";//测试环境
*HOST_PRERE="SplashActivity_prere";//预发环境
*HOST_LOCAL="SplashActivity_local";//开发环境
*HOST_USERLOCAL="SplashActivity_userlocal";//本地环境
*HOST_PRESS="SplashActivity_press";//压测环境
*正式环境为空
*/
MMKVUtil.getString(Constants.TEST_HOST_TAG);
11.weex基础库引入
implementation 'com.nyso.library:andweex:1.0.0'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation 'com.alibaba:fastjson:1.1.46.android'
implementation 'com.taobao.android:weex_inspector:0.10.0.5'
//初始化weex图片加载
InitConfig config=new InitConfig.Builder().setImgAdapter(new ImageAdapter(getApplicationContext())).build();
WXSDKEngine.initialize(this,config);
//weex model注册 view注册
try {
WXSDKEngine.registerModule("TestModule", TestModule.class);
WXSDKEngine.registerModule("sdModule", SDModule.class);
WXSDKEngine.registerComponent("progressView", WeexProgressView.class);
}catch (WXException e){
e.printStackTrace();
LogUtil.e("0.0",e.getMessage());
}
12.可配置style
所有引用基础库的项目都需要在主项目的style文件中创建一个themestyle,该style需要继承基础库中的AppTheme.LangNoActionBar
将创建好的style设置到AndroidManifest中的application标签中,单个activity如果需要特殊样式的主题需要继承这个主项目的themestyle,在进行配置
所有引入的第三方库如果它的AndroidManifest文件中有activity并且在application中设置了主题样式需要将这个样式从application中移除,
放到每一个activity中以防和主项目中的themestyle冲突
可配置的点:
- @mipmap/back2
- @color/lang_colorWhite
- @dimen/title_size
- @color/lang_colorBlack
- @color/lang_colorWhite
- @mipmap/loading_out
- @mipmap/image_def
- @mipmap/lang_error
- @mipmap/lang_nonet
- @string/tip_error
<<<<<<< HEAD
- @string/tip_no_network
13.图片加载工具需要初始化默认图GlideUtil.getInstance().initDefResId(Activity activity);
=======
- @string/tip_no_network
13.图片加载工具需要初始化默认图
GlideUtil.getInstance().initDefResId(Activity activity);
>>>>>>> c01fa2344d700867a31029548407bf05ff780ab7
需要在应用的第一个activity创建时执行,才能使style中的image_def生效
# 帮助
一.修改aar包时,版本号不提升,代码修改的情况下,需要清除本地maven缓存文件
1.删除~/.gradle/caches/transforms-1/files-1.1/相关包名
2.删除~/.gradle/caches/modules-2/files-2.1/相关包名
3.删除项目中的.gradle文件夹和.idea文件夹和bulder文件夹
4.重新编译gradle下载最新的aar包
二.weex 源码修改
1.修改原因:资源默认图片加载有异常
WXImageView.java中setImageResource(int resId)方法
添加if(resId!=0)判断
2.修改原因:Android input标签光标不显示
WXEditText.java中public WXEditText(Context context)构造方法中添加
try {//修改光标的颜色(反射)
Field f = TextView.class.getDeclaredField("mCursorDrawableRes");
f.setAccessible(true);
f.set(this, R.drawable.weex_edittext_cursor);
} catch (Exception ignored) {
// TODO: handle exception
}