自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(53)
  • 问答 (1)
  • 收藏
  • 关注

原创 android git .gitignore 忽略文件基本配置 经常冲突解决

本文介绍android开发在使用git多人开发时出现各种更新冲突、无法运行、虽然添加了忽略但仍然冲突等问题1.首先删除其他所有的.gitignore文件,只留下根目录的(你只需要一个)2.配置如下*.iml*.bat*.apk# app用到zip的请忽略*.zip# 自定义了local.properties的请删除这条*.properties/captures~$*g...

2019-01-11 10:40:14 6388

原创 Android Proguard 不混淆所有第三方jar(忽略配置设置)

今天给大家分享一个只混淆自己的项目代码而不混淆所有第三方jar的方法(没错,是所有的第三方都不进行混淆,无论来什么第三方,都不需要动混淆配置)一、为app添加混淆在app的buildTypes里开启对指定包进行混淆,这里我混淆了release和debug的,并且增加了一个不混淆的类型(注①)buildTypes { release { mini...

2018-12-12 17:24:50 21897 43

原创 Android studio build.gradle 基本设置配置

今天给大家示范一下基本设置和说明ps:博主的这套配置让你的项目可以在任意电脑使用as打开无需额外文件、无需额外配置哦,当然as的版本是不能差距太大复制项目减少体积见:android 快速方便的将项目复制到其他电脑上由于多数博客鱼龙混杂,本博客如果让你非常满意或解决了大家的根本性问题,希望多多支持在右边点赞和回复一下,举手之劳方便大家。首先根目录project的build.grad...

2018-12-12 12:01:11 7142 2

原创 android 辅助功能(无障碍) AccessibilityService 实战入门详解

本君初入辅助功能也是一头雾水,各种百度结果还是一知半解,得到的大多都是对辅助功能类的翻译,仅仅是理论层面上,到实战上确是千差万别,在此记之。一、原理:大致简述一下,谷歌已经在View、ViewGroup、TextView等控件的文字改变、滑动、UI变化埋下了接口,当这些状态变化时控件会回调系统API,API系统然后对这些对象的数据进行组装,为了数据的安全性,系统会重新创建一些对象(Access...

2018-09-17 18:24:53 95870 138

原创 kotlin协程原理分析

使用kotlin的协程一段时间后,我们或多或少会产生一些疑问:协程和线程有什么关系?协程之间到底怎么来回传递的?协程真的比线程(池)好吗?

2023-04-02 19:31:12 433

原创 灵魂拷问:Android aar包:ERROR: Failed to resolve: :alipaySdk2020...修改repositories flatDir dirs libs真的解决了?

Android Studio第一次导入aar包时,必出现的一个错误,不仅仅是支付宝的aar(如果你是用module导入aar可能会怀疑人生)。发一个出奇一致的解决方案(一致到所有人都这么写)

2021-01-17 14:14:37 5985 3

原创 Android intelliJ idea git 自动pull插件(vcs auto update、push、svn、更新、merge、自动同步代码、多人团队开发)

idea对git支持的强大就不多说了。但在多人开发时(尤其是人很多的时候):1.需要频繁pull;2.pull之前必须commit;3.每次有变动都会产生“merge”记录(多次“merge”会产生繁琐的“merge”的“merge”);4.操作了同一文件还需要解决冲突(也许你仅仅是加了个空格而已):今天就解放你的双手和大脑吧:

2020-10-18 20:31:45 3256 6

原创 Android TextView、EditText代码取消加粗(设置字体加粗、粗体效果、代码加粗无效)

tv.setTypeface(Typeface.create(tv.getTypeface(), Typeface.NORMAL), Typeface.NORMAL); tv.invalidate();

2020-10-18 19:49:35 3715

原创 .gitignore教程详解(!的用法、Android Studio、忽略文件、git)

今天给大家介绍一下git的.gitignore的正确使用方式(尤其是“!”这种不忽略某个指定文件)首先发一下已经烂大街的解释:/表示忽略指定目录下的文件或文件夹:/.idea(忽略根目录下的.idea文件或文件夹)*表示n个字符:/*(忽略所有文件) *.apk(忽略以.apk结尾的文件或文件夹)?表示1个字符:??.apk(你懂得)[]表示可能是数组中的某1个字符!(英文的)表示不忽略 !*.java(不忽略以.java结尾的文件或文件夹)...

2020-07-31 14:15:05 792

原创 一个超级Adapter容器——BaseContainerAdapter

它能干嘛?最简单的解释:它可以add其他adapter官方语言解释:该adapter可以将复杂的多条目类型进行解耦拆分,每一个(或多个)条目类型都可拆单独的adapter,更方便维护和拓展。它用在哪?最简单的应用场景:聊天会话列表烧脑进阶场景:天猫、bilibili、今日头条的首页它怎么用?此处当然不会说了,因为:太TM长了????都说用于复杂页面了,如果2行解决了还叫复杂吗...GitHub:https://github.com/weimingjue/BaseContaine

2020-06-13 19:56:47 341

原创 Android Studio Unable to find EOCD signature

我也不知道这是个什么错误,但经实验是AS抽风导致的,删掉这个项目的所有临时文件再重新打开AS即可,具体删除的文件见另一篇博客:https://blog.csdn.net/weimingjue/article/details/86287739...

2020-03-25 16:01:04 8441 8

原创 Android Studio 3.60 代码、控制台、Logcat、Build、Gradle、状态栏输出出现中文乱码的问题——完全解决

解决AS乱码万能步骤:1.文件编码统一:打开设置>Editor> File Encodings,将三个都都改为utf-82.字体统一:打开设置,然后搜索“font”,将Appearance、Font、Color Scheme Font均改为“Microsoft YaHei”(汉字字体都行)(其他font相关的也可以自己看看,这里经常变动,目前就这3处)3....

2020-03-24 10:15:26 850

原创 java 根据最小值和最大值生成指定个数不重复的随机数(指定n个数量)

代码随机生成count个不重复的随机数,平均数约(max-min)/count。目前有遍历list、遍历int[]、使用HashSet去重list返回、使用set去重int[]返回、使用LinkedHashSet首先list效率肯定比int[]低,所以遍历list、HashSet+List一定比另2个低。LinkedHashSet返回时需要转成list或int[]用处不大所以推荐使用的...

2019-12-31 14:54:02 1819 1

原创 java 指定平均值和取值范围生成随机数(随机100到10000平均值是1000,最大值,最小值)

需求场景:抽奖送积分,积分范围100-10000,要求平均1000积分。这是一个很常见的需求,但是很难下手,一般人的解决方案都是先随机几个数值判断或者第一次随机一个小的第二次随机一个大的。其实如果把需求转换成数学函数你就会豁然开朗:给定离散函数y=f(x)(x∈[100,10000],y>=0,),使得y的期望值为1000。但,这种函数千千万,鬼知道是哪个...正所谓弱水...

2019-12-26 11:44:45 7816 2

原创 Android 获取app启动来源(是被谁启动的、被哪个第三方app启动?)

经常有人提问:如何知道我的app是被谁启动的?首先很遗憾的告诉你,如果对方app不做任何改动的话是不可能获取到的,因为没有任何标识能区分是从哪个app跳转过来的。如果你有能力让第三方和你对接或只需要笼统的区分通知栏、launcher、第三方这3个种类,有如下解决方案:首先你的默认启动的Activity逻辑://属性为LAUNCHER的Activity(如:MainActivity...

2019-12-17 15:07:12 9098

原创 golang 超简单实现反向代理(nginx 端口转发 Proxy)

100行你就可以做到类似nginx带自动更新的端口转发功能总共就2个文件,一个main(总行数128行),一个配置文件main:里面的json解析和log可以忽略package mainimport ( "github.com/weimingjue/json" utils2 "goProxy/utils" "goService/utils" "io/ioutil"...

2019-12-16 17:39:32 5730 1

原创 Android 列表大量倒计时卡顿的解决方案

如下商品列表秒杀,每一个商品都自带倒计时,如果每个商品都用timer或handler很容易出现卡顿甚至oom的情况所以如果我只使用一个倒计时来管理这所有的时间实现起来会怎样呢?what?一个倒计时管理这全部?想想都恐怖......其实换个思维你会发现,一切如此简单:我们不需要管这些时间剩多少,只需要管好每隔1秒告诉别人:兄弟,过1秒了。至于别人拿这一秒干嘛,那是别人的事。...

2019-12-12 17:57:00 1991 1

原创 Android RecyclerView 滑动过程中刷新数据崩溃异常 notifyDataSetChanged

不是IndexOutOfBoundsException,这个问题很简单,你改list数据的下一行必须刷新rv,如果你等干完其他事后(比如请求数据)才刷新就会偶发这种问题,解决就是改list后紧跟notify。是用户正在滑动过程中,你想刷新数据了。崩溃场景:商品列表秒杀的倒计时,当倒计时结束时删除该商品,用户如果恰好正在滑动就会崩溃。java.lang.IllegalStateE...

2019-12-12 14:52:27 2076

原创 IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling

当正在滑动过程中调用notifyDataSetChanged刷新数据就会出现这个异常:java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling android.support.v7.widget.RecyclerView{d51...

2019-12-12 14:51:37 1841

原创 Ubuntu Nginx Unable to locate package openssl-devel

主要是装Nginx的教程都是centOS的,Ubuntu的完全找不到...于是就抄着“yum -y install openssl openssl-devel”改成“apt-get install openssl openssl-devel”撸了一下...这个原因很简单,乌班图根本没这个软件,下载下面几个就行了sudo apt-get install libpcre3 libpcre...

2019-11-26 09:37:23 2816

原创 Ubuntu Nginx ./configure: error: the HTTP gzip module requires the zlib library. You can either...

新手用Ubuntu(乌班图)系统装Nginx可真是不容易啊,第一个PCRE的问题搜一下还挺好解决的,但zlib搜半天不知道在哪里下载:./configure: error: the HTTP gzip module requires the zlib library.You can either disable the module by using --without-http_gzip...

2019-11-26 09:30:09 5494 2

原创 一不小心就1024了

祝大家节日快乐

2019-10-24 10:48:28 306

原创 Android 仿京东淘宝拼多多的商品分类,双列表联动,RecyclerView嵌套

淘宝京东的相对简单很多,两个RecyclerView就可实现了。现在要做的是右边滑动的时候左边跟着联动,如下图:思路:左右肯定都是RecyclerView了,至于中间的图片嘛当然也是RecyclerView了,嵌套冲突的时代已经过去了。(如果你想用多条目,每张图片也要复用我也不反对,但你会掉头发...)注意:嵌套的内层RecyclerView会失去复用,不适合单个分类上百张图片(是...

2019-10-23 14:31:52 6842 2

原创 纠正:java代码求1^1+2^2+3^3+4^4+5^5+……20^20...n^n大数运算的和

应博友需求代码实现n的n次方的和:正常加到16已经超出long型了,所以肯定不能直接用基本数据类型计算。用string显然问题很多:到处在强转、效率低下、繁琐的无用逻辑等(用String写的博客不仅抄的一样,还都是错的?),所以采用List<Integer>来保存每一位值才是最好的。由于多数博客鱼龙混杂,本博客如果让你非常满意或解决了大家的根本性问题,希望多多支持在右边点赞和回...

2019-09-30 11:36:29 2326 1

原创 优化:java递归实现笛卡尔积算法

笛卡尓积又称直积,表示为X×Y。举例:集合A={a, b},集合B={0, 1, 2},则两个集合的笛卡尔积为{(a, 0), (a, 1), (a, 2), (b, 0), (b, 1), (b, 2)}。应用场景:一个手机规格:型号note、pro,闪存4G、8G,内存64G、128G,配置标配、低配、高配。如果想保存这些规格信息(哪些卖完哪些没卖完),当然必须得到所有的组合信息。...

2019-09-19 10:12:17 3554 4

原创 Android api 28 9.0 EditText无法自动弹出软键盘(windowSoftInputMod stateAlwaysVisible targetSdkVersion)

很简单的需求:打开界面就弹出软键盘于是://build.gradle中targetSdkVersion 27//Mainfest中android:windowSoftInputMode="adjustResize|stateVisible"//xml中<EditText android:layout_width="match_parent" andro...

2019-08-19 17:48:15 2606 4

原创 一些加密算法浅析

我们介绍一下几种加密方式:MD5加密:此加密方式一定是不可反解密的,有些人宣传能够解密一切md5一定是假的。目前对于普通字符的md5可以使用暴力破解的方式,所谓暴力破解就是先把常用的字符串转成md5并保存下来,然后拿你给的md5值一一对比。保存这些md5值需要tb以上的磁盘阵列,并且目前超过10位的复杂密码(如果是简单的肯定不行了,因为他们都会把常用密码存下来的)是不可能破解的,...

2019-07-19 17:27:46 1164

原创 golang语言json转换map、list、slice、array结构体,大小写问题(不是加tag)

本文主要解决使用go语言json转换的一些细节问题:1.map、list如何转换成对应的结构体2.结构体转json会变成大写的问题(不是加tag,是彻底解决)3.空数据如何不转换成json由于内容也不算复杂,功能单一,所以过程就省略了,在此奉上github链接:https://github.com/weimingjue/json...

2019-07-04 11:13:42 7911

原创 Android Studio 查看不到系统源码终极解决方案

以前从来没有出现过看不到源码的情况,今天突然找不到源码了。原因当然不是as抽风而是属于手贱打开微信分享的源码WXApiImplV10会发现头顶上出现如图样式意思就是反编译失败了(失败后有些代码会显示不全,并且debug这里的代码会对不上),并且右上角的2个蓝字非常诱人...于是就乱点一通(里面的操作会修改源码路径),第二天(重启as后导致的)你就会发现Android源码变成了和上面一模...

2019-06-18 10:22:43 8195 3

原创 golang语言sql Rows转化保存成map

当我们用sql查出数据时,第一个问题当然是如何将rows转成map集合了,不多说直接上代码func DoQuery(db *sql.DB, sqlInfo string, args ...interface{}) ([]map[string]interface{}, error) { rows, err := db.Query(sqlInfo, args...) if err != n...

2019-06-06 13:39:44 10342 9

原创 android 仿全民k歌 线谱乐谱音高图

全民k歌大家都不陌生吧,在嗨歌时有一个线谱样式的动画效果是不是很吸引人呢。效果似乎很复杂,感觉上非自定义view莫属了,然而如何处理滑动、如何处理颜色、如何处理多段线条、如何处理数据变化......等都搞好了准备写的时候才发现————一个星期过去了......

2019-05-30 10:17:21 3675 9

原创 java 多线程synchronized同步锁锁住相同用户Id

本文介绍使用javasynchronized同步锁来实现对相同userId进行加锁众所周知synchronized只能锁对象地址,而对于如下加锁是完全没有用的 public void test(Long userId) { synchronized (userId) {//除了-127-128外其他的值都锁不住// ... ...

2019-04-30 18:03:09 11738 1

原创 Android 正式测试预发布环境一键切换——不要再注释来注释去了

本文主要解决实际开发过程中各个环境之间繁琐的切换问题。案例:正式环境域名“http://abc.net",测试环境域名“http://test.abc.net",预发布环境域名“http://develop.abc.net",h5正式为“http://h5.abc.net",h5测试...,h5预发布...,图片加载正式...,...于是你在url里这么写(为了省去前缀也许你写成了In...

2019-04-10 10:49:59 1724

原创 Android 工具类去掉context Application——如何让你的工具类更简洁

有没有经常用过 public static int dip2px(Context context, float dipValue) { return (int) (dipValue * context.getResources().getDisplayMetrics().density + 0.5f); } public static void toas...

2019-04-10 10:47:40 729

原创 Android简单基类封装(三)OKhttp网络请求——其实你也可以

本文介绍如何抛弃那些高大上的、花里胡哨的、适配所有的完美http封装(壳子而已)。学习地址:https://github.com/weimingjue/http首先,OKhttp是现在所有安卓开发的网络请求框架(还在用Apache的我就不多说什么了,自行绕道),那些所谓的完美封装只是在OKhttp上加了几行代码而已。其次,那些封装也是要考虑全局性,只是把OKhttp简化了一两行而已,真...

2019-03-13 17:33:16 10266 2

原创 IntelliJ IDEA 同一项目使用多个git管理多个分支(不同项目 多模块 pull 更新 push 推送 操作)

描述一下场景:一个完整的项目被拆分成了多个模块,但是这几个模块分别有自己的git,这时对git的pull(更新)、push(提交)、checkout(切换分支)等操作就会出现各种冗余繁杂的操作。有了这个插件,麻麻在于不用担心忘记pull了:https://blog.csdn.net/weimingjue/article/details/109149530

2019-03-13 09:51:32 25564 23

原创 Android简单基类封装(二)——RecyclerView BaseAdapter

使用或学习地址:https://github.com/weimingjue/BaseAdapter封装的第一条:理清思路,RV最大的痛点:没有点击事件,list的时候还要额外写一堆重复代码,没有header、footer第二条:寻找解决办法,点击事件在bind时可以设置;列表时传入list将size返回;headerfooter也是list产生的问题,只需要增加3种type:HEADER、...

2019-03-05 18:03:58 3380

原创 Android 简单基类封装(一)——初识封装

封装是什么?有些人看到封装两个字一脸茫然,这似乎是个很深奥的词,现在我告诉你封装其实只是把一些重要或重复的代码拿出来规范了一下而已。“重要”对刚入手的人来说可能并不清楚,但“重复”应该深有体会吧。后续就从“重复”开始慢慢理解封装。我该如何封装?首先,一个成功的封装应该具备以下所有的条件:1.可拓展性强:如果你写的代码只适合某些特定、苛刻的条件下才能使用,那么这顶多算是一个工具类。反...

2019-03-05 17:02:12 3292

原创 给新人的一些基础常识

本文主要介绍了对java对象的简单认知、常见错误排查、常见错误思想和常见陋习。本文适合刚上手的小白或者对基础理解不够的人阅览,已经对android有很好的了解或者什么都不会的可以绕道了。首先:引用是什么?指针是什么?new干了什么?对于刚撸代码的小白来说引用、指针是左脑的面粉,new是右脑的水,动一动脑筋...既然面对刚上手的人当然是通俗的讲好了:内存就好比一块矩形,new对...

2019-02-26 18:29:49 16826 1

原创 fastjson Json字符串、Map、List、数组、JsonObject、JsonArray、对象之间相互转换

本文介绍用fastjson在各个需求间转换最快最简洁的方法Json字符串>对应ObjectTest test = JSON.parseObject(jsonSt, Test.class);//转对应objList<Test> list = JSON.parseArray(jsonListSt, Test.class);//转对应listJson字符串>Jso...

2019-02-14 16:15:20 7636

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除