- 博客(16)
- 收藏
- 关注
原创 小米三面算法:两个栈实现一个队列功能
小米三面时,面试官给出了一个算法题,题目如下:用两个栈实现一个队列的功能,如:输入1,2,3,4,5,6;输出1,2,3,4,5,6。解题思路:输入数据时,将数据输入到栈1,输出数据时,先判断栈2中是否有数据,若有直接出栈,若无则将栈1中数据全部入栈2,之后再将栈2中数据出栈。如下图所示:按照该思路,进行了代码线上编写,运行后发现出栈顺序是错误的,而且面试官指出push时直接入栈即可,没必要执行判断和循环。编写的代码如下:import java.util.Stack;public.
2021-07-15 11:14:20
227
原创 Android加载网络图片不显示的解决方案之一:使用的Picasso框架
便于后期查看,自己记录。项目中使用Picasso加载服务器中图片,一直加载不成功。查看url路径后,发现url路径如下:http://192.168.1.XXX:8080/Photo/20200509/用户A_20200509130.JPG直接头大?!!为什么要有中文路径!!!!愤怒归愤怒,问题还需要解决。方式1:直接找后台,让他修改对应URL路径,路径中不许带中文。方式2:将url路径进行Uri编码,如下:public static String formatPathU
2020-12-25 16:15:27
743
原创 伪EventBus:根据EventBus原理实现自己的EventBus
1 注册事件 if (!MyEventBus.getDefault().isRegistered(this)) { MyEventBus.getDefault().register(this); }2 反注册事件if (MyEventBus.getDefault().isRegistered(this)) { MyEventBus.getDefault()....
2019-04-03 15:08:52
272
2
原创 自定义Toast工具类
自己封装的Toast,在子线程中可以显示,现在Toast正在被Snackbar逐步替代,使用Toast的人越来越少,但在开发过程或调试过程中,Toast的用处还是挺大的。自己封装,便于查找和记录,不喜勿喷~~~~原理是创建拥有主线程Looper的Handler,在该Handler中进行显示Toast的操作,这样在子线程中也可以进行显示Toast,代码如下:public class ...
2019-03-27 13:52:57
286
原创 getFragmentManager、getSupperFragmentManager和getChildFragmentManager比较
在Activity通过FragmentManager来对fragment进行管理。获取FragmentManager对象有三种方式:1 getFragmentManager():直接使用android中fragment时获取,由于Fragmeng为3.0出现的,不能向下兼容。2 getSupperFragmentManager():使用v-4包中的fragment时获取,可...
2019-03-19 10:18:16
397
原创 Android进程间通信:Binder机制
目录写在最前端Binder通信机制原理总结 写在最前端 在Android系统中,每一个app都是运行在一个独立的进程中的,不同进程之间是相互隔离、相互独立的,Android系统如此设计的目的是保障app的安全性和独立性。试想如果你开发的app程序在运行的过程中,可以被其他任意app调用和访问,这是多么可怕的事情。但是时代发展的规律告诉我们,有交流才会有进步,相...
2018-12-26 17:35:40
901
1
原创 Android开发中对Handler使用的一些总结
目录写在最前端Handler运行机制使用Handler向主线程发送消息使用Handler向子线程发送消息HandlerThread的使用Handler内存泄露总结写在最前端 和现实社会一样,消息机制在Android开发中也尤为重要。Android中的消息机制是通过Handler来实现的。随着EventBus和RxJava等依托观察者模式的消息传递机制的出现...
2018-12-25 15:41:14
676
原创 GIT撤销修改总结
目录 GIT基础知识撤销操作 GIT基础知识 主要名词如下: stage: 暂存区 master: 主分支 版本库: git自动生成的.git文件夹 工作区:编写和存放代码的区域 HEAD:指针,每个分支都有一个HEAD,并指向各自的分支节点 ...
2018-12-13 13:34:46
465
原创 Android Studio3.1.2支持Lambda表达式的配置
目录写在最前端Android Studio中配置支持Lambda表达式编写Lamdba表达式写在最前端Java8最牛的地方是增加了Lambda表达式的支持。眼看随着jdk收费时代的到来,使用java语言来开发Android程序的时代即将远去。尤其是当Kotlin成为Android开发语言以及Kotlin语言的强大。但是更新始终是缓慢的,尤其是在国内的这种环境。所以通过Java语...
2018-12-05 14:17:39
395
原创 Android 使用tcpdump进行网络访问抓包
目录 写在最前端整体概括具体步骤1、工具的准备2、抓包前准备3、开始抓包4、进行网络请求5、停止抓包6、将生成的数据取出7、使用查看工具进行包数据的查看写在最前端 本次所说的是通过抓包工具抓取Android设备上收发的网络通信帧,使用的抓包工具是tcpdump,抓取到数据后使用的查看帧的工具是Wireshark。两个工具对应的原理,...
2018-11-19 16:11:06
1546
原创 Android Studio突然出现编译很长时间原因之一
目录 写在最前端传统解决方案本次问题分析 解决方案写在最前端 平时使用Android Studio时,编译速度都是在1分钟左右。今天使用时,上午编译速度还是1分钟左右,下午的时候编译的时间突然变得很长很长,最长的时候达到8分钟。刚开始以为是项目工程的问题,后来通过自己查找发现问题是后台提供的一个maven链接不上导致的,耗费了好多时间,特此记录,希望能帮到同行...
2018-11-15 17:22:00
1622
原创 GIT使用步骤总结
目录写在最前端整体步骤一、配置GIT服务区并分配权限二、安装GIT三、首次上传代码四、非首次上传代码五、初次下载Git文件六、后期从服务器拉取代码七、冲突合并写在最前端本次使用GITBlit存放GIT代码。整体步骤一、配置GIT服务区并分配权限首先安装GITBlit,之后分配权限,权限如下:地址:https://admi...
2018-11-14 18:06:19
337
原创 GIT多人协作开发步骤总结
目录 写在最前端整体使用步骤详细步骤其他操作优点 写在最前端我使用的存放git代码的工具是GitLab,记得需要和公司要GitLab的账号和密码。关于GitLab的账号创建、登陆、SSH配置等步骤不是本次的重点,而且网上有很多配置步骤。本次只讲解Git托管代码时多人协作的使用步骤。整体使用步骤GIT会默认给使用者创建一个主分支,名称为master。按...
2018-11-14 17:53:09
1644
原创 自定义ViewPager:禁止滑动和无切换效果
原理和代码比较简单,就不再多说原理。但使用场景较多,特此记录,代码如下:public class NoScrollViewPager extends ViewPager {private boolean noScroll = true;public NoScrollViewPager(Context context, AttributeSet attrs) {super(context,...
2018-10-23 08:59:19
244
原创 跑马灯实现的三种方式
实现跑马灯的三种方式:分别是直接用控件、自定义一个HorizontalScrollView和自定义一个TextView。一、直接使用控件:优点:使用简单缺点:可扩展性差使用:直接在XML文件中添加如下代码即可: <TextView android:id="@+id/tv_desc" android:layout_width="wrap...
2017-03-01 11:04:28
2893
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人