- 博客(76)
- 收藏
- 关注
原创 Android 内存优化——常见内存泄露及优化方案
前言如果一个无用对象(不需要再使用的对象)仍然被其他对象持有引用,造成该对象无法被系统回 收,以致该对象在堆中所占用的内存单元无法被释放而造成内存空间浪费,这中情况就是内存泄 露。在 Android 开发中,一些不好的编程习惯会导致我们的开发的 app 存在内存泄露的情况。下面介 绍一些在 Android 开发中常见的内存泄露场景及优化方案。单例导致内存泄露单例模式在 Android 开发中会经常用到,但是如果使用不当就会导致内存泄露。因为单例的静态 特性使得它的生命周期同应用的生命周期一样长,如果一
2021-11-16 15:15:27
372
原创 Android 面包屑+Fragment
实现效果:使用方法:加入依赖:implementation 'com.github.1QQ6:CrumbsView:v1.0.4'//面包屑<com.example.crumbsview.StrongCrumbsView android:id="@+id/breadCrumbs" android:layout_width="match_parent" android:layout_height="40dp" android:
2021-07-11 21:17:17
419
2
原创 Handler的原理分析
Handler的原理分析:首先了解一下handler的主要成员1.主要的有Message、MessageQueue、Looper、Handler一个线程绑定一个looper,一个looper维护着一个MessageQueue队列,而一个线程可以对应多个handlerHandler:发送和接收消息 Looper:取消息并分发消息给handler Message:将发送的消息封装成Message对象 MessageQueue:将发送的Message对象存储在MessageQueue队列中
2021-03-14 17:34:51
309
原创 Retrofit+Okhttp实现注册登录+后端代码超详细步骤
前言这几天想学习网络相关的东西,那么就从最简单的开始吧,但是在网上搜了一下,百度还是谷歌都没有完整的教程,要不只有移动端代码,要不只有后端代码,所以我在完成之后想把这些记录下来,做一个简简单单的总结。从搭建环境开始一步一步来。代码比较粗糙,不过基本功能没问题。本文章用到框架不会的可以提前学起来了。环境移动端: 1. AndroidStudio 4.1.1 2. 编程语言:kotlin 3. 架构:mvp 4. 框架库:retrofit2+okhttp3(这里没用rxjava是因为有kot
2021-01-27 22:22:24
3109
6
原创 【算法】冒泡排序+选择排序+插入排序
目录前言1.冒泡排序1.1冒泡排序思路1.2冒泡排序图解1.3冒泡排序代码实现1.4冒泡排序的时间复杂度分析:1.5冒泡排序的空间复杂度2.选择排序2.1选择排序思路:2.2选择排序图解2.3选择排序代码实现2.4选择排序的时间复杂度分析:2.5选择排序的空间复杂度分析:3.插入排序:3.1插入排序原理:3.2插入排序图解3.3插入排序代码实现3.4插入排序的时间复杂度分析:前言本篇文章讲解了冒泡排序,选择排序和插入..
2021-01-15 18:36:47
321
原创 【算法】时间复杂度和空间复杂度分析
前言现在面试越来越难,基本上是造火箭,而算法又是必不可少的面试题,对程序员来说,算法的要求也越来越高,如果没有好的算法基础,想进一家不错的公司基本上是无缘了,所以在此再回顾一下吧,把扔给老师的再补回来(T T)算法的时间复杂度分析定义:在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随着n的变化情况并确定T(n)的量级。算法的时间复杂度,就是算法的时间量度,记作:T(n)=O(f(n))。它表示随着问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作
2021-01-14 17:32:12
876
1
原创 【算法】已知一个搜索二叉树后序遍历的数组posArr,根据posArr重建树
已知一个搜索二叉树后序遍历的数组posArr,根据posArr重建树/** * 已知一个搜索二叉树后序遍历的数组,建对应树并返回头结点 * * 8 * / \ * 4 10 * / \ / \ * 2 6 9 12 * * 后续遍历结果:[2,6,4,9,12,10,8] * * * 思路: * 1.后序遍历的最后一个数绝对是根节点 * 2.找左子数:从[left,right-1]范围开始找比最后一个数字小的数的最右面的那个数,记
2021-01-05 00:15:48
312
原创 理解android中最熟悉的Context
Context的介绍Context 在Android开发中几乎无处不在,对于开发来说实在是再熟悉不过了。但是你真的了解它吗?是否在使用的时候分不清楚呢?并且可能你的一不小心就会导致内存泄漏。由于Android中存在不同类型的Context,因此作为Android开发,我们可能刚开始不知道在某个位置使用哪个上下文。所以,我们看看下面是如何正确使用Context的。其中android主要有两种类型的上下文:Application Context:这是一个单例,可以在activity中使用getAppl
2020-05-20 22:27:46
1006
原创 java和kotlin如何相互转化
java转kotlinShift + Alt + Cmd + k MacShift + Alt + Ctrl + k Windows如下图所示:这里记录下java一键转kotlin遇到的几个错误:1.Overload resolution ambiguity. All these functions match原因:名字冲突。编译器不知道引用哪一个参考链接12.Smart cast to 'Type' is impossible, because 'variable' is a muta
2020-05-09 17:16:55
3163
原创 解决Android Studio cannot open this project, please retry with Android Studio 3.6 or new
出现此现象,要不是因为gradle的版本太高了,要不是android studio的版本太低了总之得改一个,这里我修改的是gradle的版本,不升级android studio,还是不吃螃蟹的好。gradle-wrapper.properties 的版本也太高了参考链接...
2020-04-28 16:46:37
759
原创 解决Only the original thread that created a view hierarchy can touch its views
Only the original thread that created a view hierarchy can touch its views出现原因:回调接口在子线程,并在回调接口对UI进行了操作所以,将会出现上述提示一般来讲,会使用handle解决这个问题在对应的回调接口根据网络请求返回的数据来传递不同的消息handler.sendMessage(msg);再根据消息的内容...
2020-04-16 17:55:13
33222
5
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人