- 博客(23)
- 资源 (1)
- 收藏
- 关注
原创 android的哪些Activity不混淆?
Manifest文件中注册的Activity(四大组件)是不能混淆的。因为Android系统在做安全验证的时候会从Manifest文件查所有注册Activity的class文件的路径是否正确。如果混淆了,就找不到了。只要是没在manifest文件注册的,都会参与混淆,比如BaseActivity。...
2021-11-20 21:36:18 2310
原创 okhttp执行流程
1. newCall(Request)方法会返回一个RealCall对象,它是Call接口的实现。当调用 RealCall.execute() 的时候,RealCall.getResponseWithInterceptorChain()会被调用,它会发起网络请求并拿到返回的响应,装进一个Response对象并作为返回值返回;RealCall.enqueue()被调用的时候大同小异,区别在于enaueue()会使用Dispatcher的线程池来把请求放在后台线程进行,但实质上使用的同样也是 getRe...
2021-11-13 21:28:15 517 1
原创 Rettrofit设计模式
外观模式(门面模式)Retrofit给我们暴露的方法和类不多。核心类就是Retrofit,我们只管配置Retrofit,然后做请求。剩下的事情就跟上层无关了,只需要等待回调。这样大大降低了系统的耦合度。对于这种写法,我们叫外观模式(门面模式)。几乎所有优秀的开源library都有一个门面。比如Glide.with() ImageLoader.load() Alamofire.request()。有个门面方便记忆,学习成本低,利于推广品牌。 Retrofit的门面就是retrofit.create(
2021-11-12 18:12:43 2230
原创 Rettrofit注解
Retrofit还提供了很多其他的注解类型第一类:网络请求方法1.@GET、@POST、@PUT、@DELETE、@HEAD分别对应 HTTP中的网络请求方式2.@HTTP替换@GET、@POST、@PUT、@DELETE、@HEAD注解的作用 及 更多功能拓展具体使用:通过属性method、path、hasBody进行设置public interface GetRequest_Interface { /** * method:网络请求的方法(区分大小写) ...
2021-11-12 16:16:50 182
原创 Retrrofit注解
Retrofit2注解:@GETGET网络请求方式@POSTPOST网络请求方式@Headers头信息参数@Path 路径参数.替换url地址中 "{" 和 "}"所包括的部分@Query查询参数.将在url地址中追加类似"page = 1"的字符串,形成提交给服务器端的请求参数@QueryMap查询参数集合.在url地址中追加类似"type = text & count = 30 & pag...
2021-11-12 13:34:54 858
原创 Plugin with id ‘maven’ not found
Plugin with id ‘maven’ not foundlimingbocsdn 2021-08-31 12:55:42 225 收藏分类专栏: Android 文章标签: maven java版权Android专栏收录该内容3 篇文章0 订阅订阅专栏问题描述:最近引入maven插件出问题了,总是报错找不到maven插件。Caused by: org.gradle.api.plugins.UnknownPluginException: Plugin with id ‘mave
2021-11-12 13:33:49 554
原创 retrofit基本使用
Retrofit2简单的说就是一个网络请求的适配器,它将一个基本的Java接口通过动态代理的方式翻译成一个HTTP请求,并通过OkHttp去发送请求。此外它还具有强大的可扩展性,支持各种格式转换以及RxJava。本文基于Retrofit2解析。Retrofit2基本使用先定义一个PersonalProtocol的java接口public interface PersonalProtocol { /** * 用户信息 * @param page * @retur
2021-11-12 11:08:32 227
原创 https相关知识
定义:HTTP over SSL 的简称,即工作在 SSL(Secure Socket Layer) (或 TLS(Transport Layer Secure))上的 HTTP。说白了就是加密通信的 HTTP。它不是一个单独的协议,而是在HTTP之下增加的一个安全层(TLS),用于保障HTTP的加密传输。本质:在客户端和服务器之间协商出一套对称密钥,每次发送信息之前将内容加密,收到之后解密,达到内容的加密传输。为什么不直接⽤⾮对称加密?⾮对称加密由于使用了复杂的数学原理,因此计算相当复.
2021-11-11 22:14:32 1394
原创 传输层TCP相关知识
为什么三次握手?不采用2次: 避免服务端收到过时的请求。这是为了防止超时重传的无效的连接请求报文到达B服务机。 1. 因为有可能A先发了一个连接请求报文,但是由于网络的1问题,迟迟没有到达B主机,这时候,A主机就超时重传了该报文,然后B主机响应了该请求报文,但是不妙了,第一个报文居然又到了B主机,那么B主机就会把它作为新的连接请求, a. 如果只有两次握手,那么B主机对于该连接请求也会建立连接, b. 但是如果是三次握手,B主机发出确认报文后,A主机不予理睬,...
2021-11-11 20:04:42 1746
原创 2021-11-11
为什么要分层?网络不稳定,传输失败会发生,为了稳定。因为网络是不稳性的, 而且网络中的数据可能会很大,如果中途传失败了则还得重头开始将此数据传一遍,那网络的利用率是极低的为什么有HTTP: 为什么有TCP? 1、拆分:将数据进行分段进行传输,所以可以将大数据拆成几段。处理包的分发。数据拆分及重试。 2、重传: 比如说1、2、4传输成功了,但是!!3失败了,那只要重新传第3块数据既可,如果不分块那等于得重传整个数据,效率大大降低,我们知道TCP是可靠的传输,如果传输...
2021-11-11 18:41:49 560
原创 登录、授权
Cookie不是专门登录用的,但是Authorization就是为登录设计的。 1. Cookie: a. 作用:一、会话管理:购物、登录状态sessionid。二、个性化:管理用户偏好client_id。三、Tracking:追踪用户行为(外链from)。 i. 购物例子: 第一步:苹果加购物车 第二步:香蕉加购物车 ...
2021-11-11 16:09:57 1559
原创 编码->Hash->加密;序列化
1. 编码 a. 压缩:文本、图片、视频。 i. 视频图片的编解码。 ii. 有损压缩和无损压缩。 b. 二进制数据(非文本)Base64/58(去掉难区分的字符,比特币) "Man"不是非文本,仅用作举例 i. 用途: 1) 用文本传输非文本数据 a) 正常情况下图片不编...
2021-11-11 13:03:37 2021
原创 Execution failed for task ‘:app:compileDebugJavaWithJavac‘. > javax/xml/bind/JAXBExcept
把工程的JDK版本改成8就好了,Android Studio默认是JDK11,需要改成JDK8及更早的版本。
2021-11-04 22:38:50 523
原创 不兼容的类型: 推论变量 T 具有不兼容的上限 ActivityMainBinding,ViewDataBinding
问题描述 分析原因 解决方案 源码: public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ActivityMainBinding mainBindin...
2021-09-30 18:41:42 1446
原创 AS右侧的Gradle一栏只有Dependencies,不显示其他Tasks
错误 原因 解决 AS右侧的Gradle一栏只有Dependencies,不显示其他Tasks 一定是Android Studio里的关于gradle的某个配置出了问题。 那么就在偏好设置里搜索gradle,逐项查找gradle的各种配置,看看是哪一个出了问题。 在Experimental里取消勾选即可。 ...
2021-09-27 15:14:36 1358
原创 com.android.build.api.transform.Transform找不到该类
把android gradle插件版本改成3.1.3。classpath "com.android.tools.build:gradle:3.1.3"
2021-09-25 15:43:35 704
原创 at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:782)
错误 原因 解决方法 at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:782) 原因可能有很多,我在网上找了几种方法,都不行。 于是决定通过命令行 ./gradlew :app:assembleDebug 看能不能打印出更多细节。 期间,解决了几个错误,然后命令行执行没问题了,但是点android studio工具栏的编译还是不行,
2021-09-25 15:27:19 2381
原创 cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 之一开头。
错误 原因 解决方法 org.xml.sax.SAXParseException; lineNumber: 141; columnNumber: 252; cvc-complex-type.2.4.a: 发现了以元素 'base-extension' 开头的无效内容。应以 '{layoutlib}' 之一开头。 猜测是layout.xml布局文件的问题 注释掉 <!-- app:layout_constraintBottom_...
2021-09-25 15:07:00 29440 13
原创 Plugin with id ‘maven’ not found
问题描述 原因分析 解决方案 apply plugin: 'maven' uploadArchives { repositories.mavenDeployer { repository(url:uri('../repo')) pom.groupId = 'com.hougr' pom.artifactId = 'transform.printjar' pom.ve...
2021-09-25 14:34:04 3774
原创 哪个才是Android工程构建时的gradle版本?gradle-wrapper.properties还是build.gradle的buildscript说了算?
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown编辑器你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Mar
2021-09-23 17:55:17 393
翻译 Android开发:用OpenGL ES实现GLSurfaceView背景透明
用OpenGL ES实现GLSurfaceView背景透明:第一步修改GLSurfaceView颜色模式第二步在Renderer里把背景设置为透明第三步根据实际需求设置图形的透明度值比如1由于做毕业设计,需要实现一些增强现实的效果,就是在相机界面上增加新图形层,这就需要GLSurfaceView背景透明,在stackoverflow里找到了答案,这是原版回答: http://stackover
2016-05-17 22:56:50 8273 1
转载 【转】OpenGL ES 2.0 Shader相关介绍
转载请保留出处: http://xiaxveliang.blog.163.com/blog/static/2970803420134675213148/与OpenGL ES1.x渲染管线相比,OpenGL ES 2.0渲染管线中“顶点着色器”取代了OpenGL ES 1.x渲染管线中的“变换和光照”;“片元着色器”取代了OpenGL ES 1.x渲染管线中的“纹理环境和颜色求和”、“雾”以及“Al
2016-05-13 21:03:02 760
转载 【转】HR最常用的20个面试问题及答案
转载自前程无忧[面试]HR最常用的20个面试问题及答案来自前程无忧HR网友“HR女王”的分享: 根据在咨询中针对人事主管的调查,统计出20个人事主管最常问的问题和最喜欢的答案。 我去应聘的时候,初试时我都会看这些问题,有些问题面试官的确会问,而我本人也做了有半年的初试官,也常会在面试时问起这些问题。 问题1:你为什么想离开目前的职务? A.别的同仁认为我是老板前的红人,所以处处排挤我。
2016-05-12 09:47:59 2919
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人