自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(56)
  • 资源 (5)
  • 收藏
  • 关注

翻译 约束布局ConstraintLayout(官翻篇)

想写一篇关于约束布局ConstraintLayout的使用,看了网上其他人总结的很全面,一下子不知道自己该写什么了,索性翻译下官网文章,顺便锻炼下英文阅读能力。原文地址:ConstraintLayout https://developer.android.com/reference/androidx/constraintlayout/widget/ConstraintLayout

2020-11-15 22:54:53 2681

原创 Android面试:一,常用库—Glide源码分析(基于最新版本 4.12.0-SNAPSHOT)

参考:《Android面试题:Glide》https://blog.csdn.net/songzi1228/article/details/84426165Q:了解Glide的实现原理吗?A:了解过,主要有几个方面:图片缓存:内存缓存(LRU缓存+弱引用缓存),磁盘缓存,Bitmap对象池(Bitmap对象复用) 请求管理:根据生命周期取消request,重启失败request,请...

2020-03-31 23:24:32 631

原创 File Provider

File Provider, 今天解决一个bug:首先是SDK24以上,打开相机拍照,uri路径不能使用file://,需要使用content:// ;其次是收到返回值时,是File Provider封装过的路径,不是真实路径地址,需要自己再转换。原始地址: /storage/emulated/0/DCIM/GalleryFinal/IMG20191219134527.jpg原...

2019-12-19 18:26:42 754

原创 SVN的使用,也就是一些常见svn命令

使用svn好几年了,还只会update和commit,趁着这次项目需要建立branch分支(分支开发的功能上线待定,原项目正常迭代),系统学习下svn的使用。一个学习视频地址:https://www.imooc.com/learn/845, 下面是学习笔记,图片均来自视频。一个全面的svn的文档:https://www.kancloud.cn/i281151/svn/197097,...

2019-08-02 18:27:50 3589 1

翻译 Andorid项目架构篇----MVP + Clean Architecture

这一篇的例子,是基于Clean Architecture原则。它是基于上一篇最最简单的MVP 架构demo,在表现层和存储库之间,添加了域层(domain ),将app分为3层:Clean Architecture 是一种软件架构思想吧,地址:https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.h...

2019-06-25 19:48:07 288

翻译 Andorid项目架构篇

觉得自己的项目架构不够好用,来学习下Google出的andorid 架构蓝图,项目地址:http:// https://github.com/googlesamples/android-architecture/blob/master/README.md里面的demo真不少,最单纯的mvp架构,使用了Clean 架构的mvp,使用了dagger,rxjava等依赖的mvp和mvvm数据...

2019-06-20 15:29:34 138

转载 Android RadioGroup动态加入RadioButton,动态设置选中和未选中的颜色及设置默认选中

转载至☞ https://blog.csdn.net/Maiduoudo/article/details/84859040 此篇文章主要实现功能:RadioGroup控件根据服务端返回的数据动态添加RadioButton关于RadioButton动态设置背景颜色和字体颜色,踩过好多坑,接下来我总结一下遇到的所有问题及解决方案,供大家参考下,希望对大家有帮助。1.x...

2019-06-19 15:11:59 2256

原创 ScrollView自动滚动到底部的解决办法和原因

当ScrollView里面包含Recycleview或Listview,并且数据一屏显示不完时,打开页面,会自动滚动到页面底部,也就是Recycleview的最后一项。给scrollview的直接子view添加下面属性就可以解决。(scrollview只能有一个直接子view;给scrollview加是不行的,不知道为啥)解决办法一:(推荐,最简单)android:de...

2019-06-18 10:49:59 9864

原创 自定义PopupWindowView实现单例加载页

App的加载页没有封装到BaseActivity中,就自定义了一个单例的PopupWindowView,哪里需要就show下吧。show完记得dismiss。超级简单。效果如下:PopupWindowView的代码:import android.content.Context;import android.graphics.drawable.ColorDrawable;imp...

2018-09-19 17:51:43 582

原创 leakcanary内存泄露检测工具 Dumping memory, app will freeze. Brrr

官网地址 https://github.com/square/leakcanary 官网继承步骤就2步,超简单,但是集成进项目后,问题一:一直弹出(“Dumping memory, app will freeze. Brrr ”)。搜索了历史issue,说是需要读写权限,清单文件添加了读写权限,换到5.0的设备,还是不行。问题二:最后查看log:每次在弹窗后,输出打印error...

2018-09-18 14:30:00 5434

原创 Android 数据库SQLite升级降级

前言作业系统的新版本开发结束,由于后台的习题信息的数据字段和个数改变了,所以Android本地的数据库表字段也需要做相应调整。记录下关于数据库的升级和降级相关知识。超简单 。:)一,SQLiteSQLite是Android内置的一个轻量级的关系型数据库。数据库嘛,就是用来存储数据的。在什么情况下,Android开发需要用到数据库存储数据呢?需要存储大量的结构化的数据,使用关系型数据...

2018-09-13 18:05:28 779

转载 Android开发:最全面、最易懂的Android屏幕适配解决方案

前言Android的屏幕适配一直以来都在折磨着我们Android开发者,本文将结合:Google的官方权威适配文档郭霖: Android官方提供的支持不同屏幕大小的全部方法Stormzhang:Android 屏幕适...

2018-09-07 11:51:22 167

原创 App启动时白屏&使用BitmapDrawable解决启动页背景图片拉伸

一,App启动时,会白屏或者黑屏,采用如下方法解决:1.启动页的Activity设置style <activity android:name=".activity.SplashActivity" android:label="@string/app_name" android:screenOrie...

2018-08-30 16:28:06 4442

原创 记录两种的Android屏幕适配方案

1.一种极低成本的Android屏幕适配方式   出自今日头条技术团队  https://mp.weixin.qq.com/s/d9QCoBP6kV9VSWvVldVVwA 下面是对今日头条适配方案的封装,不想看了,记录下来,有空看看      Android 屏幕适配从未如斯简单(8月10日最终更新版)      https://juejin.im/post/5b6250be...

2018-08-29 18:22:03 268

原创 QQ空间分享取消按返回键回退后当前页面被关闭了-----onKeyUp,onKeyDown,onBackPressed

最近在做QQ,微信分享的弹窗改版。发现了一个bug,找了3天,终于解决,小记一笔。bug如下:    选择分享到QQ好友,打开QQ好友列表页,此时如果不想分享,点击手机下方的返回键,返回应用页面,一切正常。如果同样的操作,选择的是分享到QQ空间,不想分享,点击手机下方的返回键,返回应用页面,当前页面被关闭了。初步原因:   当前页面是webview,拦截了返回键,做业务上的处理,原来是用的方法是o...

2018-04-16 14:30:14 678

转载 Android Studio 导入开源项目的正确姿势

报错:Error:(2, 0) Plugin with id 'realm-android' not found.注意:项目中用到的插件,需要根目录下的build.gradle中添加它classPath, 执行下面的build.gradle文件覆盖前先检查下,或者备份一个。当我们在Github上看到优秀的项目时,往往想下载下来学习,但是导入到AS中经常报各种错误,那么导入开源项目的正确姿势是什么呢...

2018-03-26 11:10:03 445

原创 kotlin学习笔记——https

1.tomcat服务器https配置在conf的server.xml文件中,添加https连接的配置.添加成功后,在浏览器里面输入https://localhost:8443可以访问tomcat主页。 <Connector protocol="org.apache.coyote.http11.Http11NioProtocol" port="844...

2018-03-12 15:35:38 718

原创 kotlin学习笔记——kotlin与Js通信

和原来一样,通过对象互相传值。 webview传递对象给js调用,webview则通过mWebview.loadUrl("javaScript:方法名(参数)")来调用js中的方法,需要注意的是调用js方法必须在主线程。1.懒加载:使用时才初始化, 类型声明为valprivate val mWebview:WebView by lazy { webview}2. 当js需要java中的数...

2018-03-11 11:01:26 3221

原创 kotlin学习笔记——热修复

采用阿里巴巴的修复框架AndFix:及时修复,但是资源文件不会改变。库地址:https://github.com/alibaba/AndFix热修复和增量更新的集成和使用方法差不多。增量更新会生成新的apk,热修复不会生成新的apk,是依靠补丁文件来替换出bug的代码。...

2018-03-09 15:27:25 845

原创 kotlin学习笔记——增量更新

采用谷歌Samrt App Updates更新机制更智能的版本更新,降低2/3流量集成的这个库:https://github.com/jiyouliang2/SmartUpdateDemo怎么实现的不知道。import android.app.ProgressDialogimport android.content.Intentimport android.content.pm.Package...

2018-03-08 18:16:15 399

原创 Kotlin学习笔记——加密解密

对称加密:凯撒加密(位移),DES,AES非对称加密:RSA消息摘要:md5,sha1,sha256,数字签名1.with高阶函数,可以接收一个对象作为参数,方法体里对参数对象进行操作,最后一行可以返回结果,再用参数接收。2.凯撒加密 :把字母移动一个数字来实现的加密和界面。3.对称加密注意:中文DES加密后乱码,因为加密后的二进制数据在码表中找不到对应的字符,就会变成乱码,所以加密后再用Base...

2018-03-08 13:57:36 4702

原创 Kotlin学习笔记一基础语法

一,函数:fun 函数名(参数名:参数类型):返回值类型{    函数体}1. fun 是函数的声明,固定写法2.main方法是程序的入口fun main(args:Array<String>){ println("hello kotlin");}3.返回值类型:Unit,代表无返回值,可以省略不写二,常见数据类型:Byte,Short,Int,Long,Float,Do...

2018-03-04 16:19:39 223

原创 Android Studio 用户指栏 https://developer.android.google.cn/studio/intro/index.html

有空看看,总感觉工具不熟,无法达到人剑合一的境界。

2018-02-26 17:44:30 3223

转载 AndroidStudio 编译异常java.lang.OutOfMemoryError: GC overhead limit exceeded

bug:    Android Espresso - java.lang.OutOfMemoryError: GC overhead limit exceeded 解决:dexOptions { javaMaxHeapSize "4g"}dexOptions javaMaxHeapSize在Gradle 进行dex的可能会遇到内存不够用的情况,错误信息大概是java.lang.OutOf...

2017-05-18 16:36:03 683

原创 Android6.0新特性---权限管理

今天在慕课网上学习了qndroid老师讲解的Android6.0新特性---权限管理,时长46分钟,老师讲得很好,东西也不难,在这做个总结。在安卓系统6.0以后,也就是target api 23,权限分普通权限和危险权限,像联网这种普通权限还是和以前一样,Mainfest清单文件里面申请就OK了;但是想读写SD卡,打电话这种设计用户隐私的权限就必须在用户第一次使用是弹窗提示来申请权限了

2017-04-07 21:02:37 261

原创 java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout

java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$layout

2017-03-27 14:48:23 470

原创 Android开发--微信分享注意

主要有两个注意点:一,应用要是签名过的; 二,微信开发平台的填写签名需正确(这里填写的是由签名+包名算出来的),而不是网上人家说的keystore的SHA1值。详细步骤:

2016-09-06 17:47:28 301

转载 Android view中的requestLayout和invalidate方法

Android view中的requestLayout和invalidate方法  requestLayout:当view确定自身已经不再适合现有的区域时,该view本身调用这个方法要求parent view重新调用他的onMeasure onLayout来对重新设置自己位置。特别的当view的layoutparameter发生改变,并且它的值还没能应用到view上,这时候适合

2016-07-12 09:36:44 227

转载 FragmentActivity和Activity的具体区别在哪里

转载:http://www.cnblogs.com/wanqieddy/p/3818718.html   fragment是3.0以后的东西,为了在低版本中使用fragment就要用到android-support-v4.jar兼容包,而fragmentActivity就是这个兼容包里面的,它提供了操作fragment的一些方法,其功能跟3.0及以后的版本的Activity的功能一样。下面是A

2016-07-11 17:02:16 713

原创 Java基础——Java重点基础之面向对象思想

面向对象(面向对象思想概述)A:面向过程思想概述第一步第二步早期的计算机编程是基于面向过程的方法,将程序看作一系列函数的集合,或者直接就是一系列对电脑下达的指令。例如实现一个算术运算1+1+2 = 4,通过设计一个算法就可以解决的问题。B:面向对象思想概述找对象(第一步,第二步)面向对象是指一种程序设计范型,同时也是一种程序开发的方法。一切事物皆对象

2015-12-12 17:17:55 342

原创 Java基础——Java重点基础之多线程(三) 注意

1,在同步代码块中,用哪个对象锁,就用哪个对象调用wait方法2,为什么wait方法和notify方法定义在Object这类中? 因为锁对象可以是任意对象,Object是所有的类的基类,所以wait方法和notify方法需要定义在Object这个类中 3,sleep

2015-12-11 14:13:10 448

原创 Java基础——Java重点基础之反射

一,类的加载概述和加载时机A:类的加载概述当程序要使用某个类时,如果该类还未被加载到内存中,则系统会通过加载,连接,初始化三步来实现对这个类进行初始化。加载就是指将class文件读入内存,并为之创建一个Class对象。任何类被使用时系统都会建立一个Class对象

2015-12-08 15:40:12 344

原创 Java基础——Java重点基础之多线程(二)

一,单例设计模式单例设计模式:保证类在内存中只有一个对象。如何保证类在内存中只有一个对象呢?(1)控制类的创建,不让其他类来创建本类的对象。private(2)在本类中定义一个本类的对象。Singleton s;(3)提供公共的访问方式。 public static

2015-12-08 15:15:36 274

原创 Java基础——Java重点基础之多线程(一)

一,多线程的引入1.什么是线程线程是程序执行的一条路径, 一个进程中可以包含多条线程多线程并发执行可以提高程序的效率, 可以同时完成多项工作2.多线程的应用场景红蜘蛛同时共享屏幕给多个电脑迅雷开启多条线程一起下载QQ同时和多个人一起视频服务器同时处理多个客户端请求

2015-12-08 11:41:51 227

原创 Java基础——Java重点基础之IO流(三)

一,序列流1.什么是序列流序列流可以把多个字节输入流整合成一个, 从序列流中读取数据时, 将从被整合的第一个流开始读, 读完一个之后继续读第二个, 以此类推.2.使用方式整合两个: SequenceInputStream(InputStream, Input

2015-12-08 09:41:50 277

原创 Java基础——Java重点基础之IO流(二)

一,字符流FileReader1.字符流是什么字符流是可以直接读写字符的IO流字符流读取字符, 就要先读取到字节数据, 然后转为字符. 如果要写出字符, 需要把字符转为字节再写出. 2.FileReaderFileReader类的read()方法可以按照字符大小

2015-12-07 22:43:09 300

原创 Java基础——Java重点基础之IO流(一)

一,IO流概述及其分类1.概念IO流用来处理设备之间的数据传输Java对数据的操作是通过流的方式Java用于操作流的类都在IO包中流按流向分为两种:输入流,输出流。流按操作类型分为两种:字节流 : 字节流可以操作任何数据,因为在计算机中任何数据都是以字节的形式存储的字符

2015-12-07 22:14:10 331

原创 Java基础——Java笔记——File类

一,File类的创建功能A:创建功能public boolean createNewFile():创建文件 如果存在这样的文件,就不创建了public boolean mkdir():创建文件夹 如果存在这样的文件夹,就不创建了public boolean mkdirs():创

2015-12-07 18:04:37 291

原创 Java基础——Java笔记——异常

一,异常:是什么?是对问题的描述。将问题进行对象的封装。二,异常体系:Throwable        Error        Exception              RuntimeException异常体系的特点:异常体系中的所有类以及建立的对

2015-12-07 10:48:34 364

原创 Java基础——Java重点基础之集合框架(四)

一,Map集合概述和特点A:Map接口概述将键映射到值的对象一个映射不能包含重复的键每个键最多只能映射到一个值B:Map接口和Collection接口的不同Map是双列的,Collection是单列的Map的键唯一,Collection的子体系S

2015-12-06 20:53:48 311

SVN版本管理详解-08210246.pdf

版本控制是管理信息变化的艺术,它很早就成为了程序员重要的工具,程序员经常会花时间做一点小修改然后第 二天又把它改回来。但是版本控制的作用不仅在软件开发领域,任何需要管理频繁信息改变的地方都需要它,这 就是Subversion发挥的舞台。 这一章是一个对Subversion高层次的介绍―它是什么;它能做什么;它是怎样做到的。

2019-12-18

SVN版本管理详解-08210246.pdf

Subversion(简称SVN)是近年来崛起的版本管理软件系统,是CVS的接班人。全面的svn使用手册,通俗易懂。

2019-08-02

java面试基础面试

基础面试宝典

2013-06-18

Java基础面试宝典

Java基础面试宝典

2013-06-18

125条常见的java面试笔试题大汇总

125条常见的java面试笔试题大汇总,经典,无废话篇,对找工作的java同仁帮助极大!

2013-06-18

空空如也

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

TA关注的人

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