- 博客(18)
- 收藏
- 关注
原创 gradle实践,依赖管理
开发种经常会遇到依赖冲突的问题。解决办法1:exclude正常依赖一个第三方库如下:遇到冲突可以先用dependencies task依赖分析 gradlew :app:dependencies加入androidx.sqlite这个库依赖冲突了,这样做sync一下,然后再运行 gradlew :app:dependencies这时之前依赖冲突的库就不见了。...
2022-03-25 18:19:46 2746
原创 Binder应用层逻辑分析
Binder机制先看下aidl的实现方式Service:定义aidl接口:把整个aidl的包全部复制到Client相同位置。创建服务端的serviceClient:在client里面引入服务端aidl后,在client这边bindService()到这里,就可以Client直接和服务进程通过iMyAidlInterface传数据了。aidl文件编译时并不会打包进apk,而是生成java文件,aidl更像是一个配置参数,我们定义好方法,aidl生成工具再根据定义的方法生成java文件
2022-03-13 16:37:39 4120
原创 Android AOP
AOP简单应用项目的gradle里配置:classpath “com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.8”app的gradle里配置:apply plugin: ‘com.hujiang.android-aspectjx’dependencies{implementation ‘org.aspectj:aspectjrt:1.8.+’}写一个简单且经典的应用场景,计算指定方法的执行时间:写一个简单的类和方法:pac
2022-01-28 18:06:16 2008
原创 每次滑动整个item的RecyclerView
每次滑动有个item的RecyclerViewimport android.content.Context;import android.support.annotation.Nullable;import android.support.v4.view.VelocityTrackerCompat;import android.support.v7.widget.LinearLayoutM...
2021-04-28 14:57:42 477
原创 把仓库B的某些提交合并到仓库A上
把仓库B的某些提交合并到仓库A上仓库A和仓库B事同一个项目的两份代码,同学甲和同学乙分别在仓库A和仓库B开发不同的功能,(看到这,别问为什么不在同一个仓库开两个分支,哈哈)。现在要把B仓库的代码合到仓库A上:假设:仓库B的地址: git@222, 仓库A的地址:git@111第一步,先在A仓库中创建一个 仓库B将要合并的分支 相同名字的分支,如果已经有这个分支,请忽略这一步。打开项目B,把仓库B的源指向仓库A: git remote set-url origin git@111下一步可以验证一下设
2021-04-28 14:42:41 545
原创 Android release:transformClassesAndResourcesWithProguardForRelease
Android 打包编译报错:Execution failed for task ‘:mobile:transformClassesAndResourcesWithProguardForRelease’.我在开发过程中从没有报这个错,但是当我要发布应用的时候突然打包失败,日志并没有指出实在什么地方,只是说找不到类,下面是具体的日志:Execution failed for task ':mob...
2019-08-27 14:11:41 413
原创 aidl 报错: java.lang.NoSuchMethodError: No interface method
AIDL遇到的一次异常报错日志出现原因报错日志W/System.err: java.lang.IllegalStateException: Fatal Exception thrown on Scheduler.W/System.err: at io.reactivex.android.schedulers.HandlerSchedulerScheduledRunnable.run(...
2019-08-22 17:26:03 2357
原创 记一次jin开发遇到的很欲哭无泪的报错
JNI DETECTED ERROR IN APPLICATION: use of invalid jobject 0x1388遇到这个错让人很头疼,字面上的意思就是说你传进来的对象是无效的,这个就很难理解了,要么是null,要么就是好的,无效怎么解释?先不管了,用debug模式来运行应用,会大概定位到出错的地方图一:对照着上图来跟这个问题途中标1的地方告诉我们再调jni里面的GetIn...
2019-01-26 12:01:55 3492
原创 java 注解应用流程
Java注解,来自小白的疑惑平时开发我们会经常会引入第三方库,比如数据库框架ormlite,retrofit, 用的时候必须要用注解来映射到属性上去,这要是别人写的代码,自己有是小白,对这种写代码的人真是又羡慕有生气,羡慕他会用注解,感觉很酷的样子,生气就是不能写点人能看懂的代码吗,这是什么破玩意儿。下面贴出两个注解使用的截图本人也有很大一段时间对注解保持着仇恨的态度,一看到注解就发怵。但...
2018-12-14 16:25:41 272
原创 Fragment addToBackStack时add和replace的区别
Fragment addToBackStack时add和replace的区别先看下activity的代码再看Fragment1. add2. replace总结:在调用addToBackStack时无论用add或者replace方式添加显示Fragment,在Activity里面添加几次Fragment就会有几个Fragment。只是他们的生命周期会不一样。add方式:生命周期不受其他Fragme...
2018-11-26 18:41:12 1719
原创 仿直播app送礼物控件(冒气泡)
仿直播app送礼物控件(贝塞尔曲线的简单应用)这个自定义控件难度很小,但是效果很好,相信大家都见过,也都有自己的实现方法,今天就来介绍下我的思路。先看下效果
2017-09-30 17:36:23 1617
原创 JNI(一) 认识JNI 上(jni.h里都有啥?)
今天,我们来了解一下 jni.h 这个头文件,大家都知道,要想在Java中调用C语言的方法,就离不开jni,写jni代码,必须导入jni.h这个头文件。jni头文件里都有啥?声明数据类型的映射关系 可以简单的理解为,Java里的boolean类型对应C语言里的unsigned char类型, 在jni里有定义了一种可以直接访问的类型jboolean,以此类推。。。 继承关
2017-09-21 00:02:39 918
原创 JNI(一) 认识JNI 中 (cmake快速配置+jni简单运用)
cmake快速配置+jni简单应用CMakeLists.txt文件的快速配置用native方法创建Java对象
2017-09-14 22:53:14 855 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人