- 博客(31)
- 资源 (21)
- 问答 (18)
- 收藏
- 关注
原创 由Handler引发的思考
先说一下,这个问题,我自己花了一晚上去思考这个问题,起源于大家都耳熟能详的Handler在Activity容易导致内存泄漏,我相信大家都知道,但是这里面的细致原因,却之前自己没有深究,所以写一下这篇博客,记录一下自己的思考。Handler导致内存泄漏我们都知道Handler因为持有外部Activity引用导致了,Activity的无法释放,但是...
2019-03-25 16:02:08
440
原创 ObjectBox的探究
ObjectBox的介绍    ObjectBox是一个专门为物联网和移动设备打造出的非常快速的面向对象的数据库,它有一下几个特点ObjectBox是小于1MB的,所以非常适用于移动App和小的物联网设备,ObjectBox是第一个高性能,NoSQL,并且兼容ACID的边缘数据库目前已经有8万多个APP使用ObjectBox,ObjectBox比...
2019-03-05 16:13:04
9947
1
原创 EventBus的基本用法
EventBus是一个用于简化各个组件比如:Acivity,Fragment,Thread,Service等之间的通信的一个第三方库,我们就不需要使用handler,Intent来写,增加代码的复杂度 EventBus官方介绍 EventBus… 1. simplifies the communication between components ...
2018-06-20 11:30:17
342
原创 View工作原理之实现等分布局
View的工作原理,也就是View的measure,layout,draw三个过程,为了巩固学习,写代码实现“等分布局”,下面就介绍“等分布局”的实现,不过之前,需要重新学习一下View的三个过程。 View大致工作流程View的绘制流程,从RootView的performTraversals开始,经过measure,layout,draw三个过程才将View绘制而出。measur...
2018-05-14 11:09:52
776
原创 Android 获取图库中图片的坑
最近实现一个功能,实现拍照的图片或者图库中的图片向服务器后台上传数据,拍照图片实现还好,可是图库中的图片一直获取不到文件,现在记录一下自己的坑。我的代码实现 //从相册选择 private void choseHeadImageFromGallery() { Intent intentFromGallery = new Intent(); i...
2018-05-01 16:46:38
1772
原创 ThreadPool用法解析
线程池好像每一次参加面试的时候,都会问道,自己之前确实没有使用过什么,今天大致结合看网上博客,发现了一篇写的很好的博客,略作修改,写下 原博客地址强烈推荐这个作者写的博客,思路很清晰!!!什么是线程池线程池当中缓存了一定数量的线程,线程池实现了对于线程的管理和复用(最重要的就是实现对线程的复用,避免频繁创建线程和销毁线程带来的开销),当然管理的可以实现线程执行的统一分配以及调优 ...
2018-05-01 16:46:12
560
原创 Service用法解析
最近,想到Service用法,好像大脑中就简单的记得,一些简单用法,有些模糊,今天补上(可能最近上课上蒙了,有些忘记了),现在看看Android四大组件中的Service.简单说一些Service:它主要用于在后台处理一些耗时的逻辑,或者去执行某些需要长期运行的任务(很耗时的任务请使用线程内部)。必要的时候我们甚至可以在程序退出的情况下,让Service在后台继续保持运行状态,service在后台...
2018-05-01 16:45:44
682
原创 AsyncTask源码分析
AsyncTask封装了线程池和Handler,它主要是为了方便我们在子线程当中去更新UI(大多数的情况下,是用它来更新进度条),AsyncTask类并不适合做过多任务量的后台任务(过多任务量实际逻辑复杂度高) 它主要有4个方法 (1)onPreExecute() 主线程执行,在任务执行之前 (2)doInBackground(Params…params) 执行任务 (3)onProgr...
2018-05-01 16:44:59
119
原创 View中requestLayout和Invalidate源码分析
我们都知道requestLayout和Invalidate都会导致View的绘制,那他们到底,有什么区别呢?我们可以去View的源码看看究竟(因为没有看过相关源码,这里重新补一下,自己太菜了) requestLayout的源码分析首先我贴出,requestlayout的注释 > * Call this when something has c...
2018-05-01 16:44:37
390
原创 Activity的生命周期
本文绝大部分内容都是来自《Android艺术探索》,我只是记笔记并且在电脑打log验证,方便自己看生命周期介绍(1) onCreate: 表示Activity正在被创建 (2) onRestart: 表示Activity正在重新启动。一般情况下,当当前的Activity从不可见的状态变成可见状态时,onRestart就会调用,比如用户按Home键切换到桌面或则用户打开了一个新的A...
2018-05-01 16:44:17
172
原创 ListView和RecycleView的区别
一. getView()和onCreateViewHolder方法我想对于这个滑动控件来说,最神奇的地方就是他们的数据绑定函数,对于Listview控件来说就是它的适配器getView()函数@Overridepublic View getView(int position,View convertview,ViewGroup parent){ Fruit fruit=getIt...
2018-05-01 16:43:55
1079
原创 Java实现单例模式
在面试的时候应该经常会问道的一种题型,使用某种语言实现单例模式,这里就记录一下常见的几种方法。单例模式:实现一个只能生成一个实例的类。方法一public Singleton{ private Singleton instance=null; private Singleton(){} public static Singleton getInstance{...
2018-03-02 17:56:12
230
原创 利用Github搭建自己专属博客
这是一个在Windows简易的搭建博客的方法,建立使用Jekyll构建自己的博客,所以这一篇文章采用fork别人的模板来构建(“偷懒”),在此之前需要满足一下条件注册一个Github账号本地安装Git,并且能实现Git向自己的仓库push文件 教程第一步:fork别人模板这里我以自己的博客的模板为例(fork),我自己采用的一款名叫NexT主题,在github上面搜索jeky...
2018-02-13 15:46:08
4619
1
原创 View基础知识(1)
View是所有控件的基类,是一种界面层的控件的一种抽象。1.1 View的位置参数 一共8个View主要由四个顶点决定,分别对应View的四个属性:top、left、right、bottomtop是左上角纵坐标,left是左上角横坐标,right是右下角横坐标,bottom是右下角纵坐标(注意这里面的参数是相对于View的父容器来说的)获取这些参数的方法:Left=getLe
2018-01-19 17:31:58
465
原创 Linux下编写udp群聊室
这个正好是我的一个课堂上机小练习,为了实现这个功能,我们需要了解一下几个知识点udp发送和接受数据的过程select语句功能如何开启一个线程*如何传输结构体struct一.udp发送数据和接受数据流程 无论是客户端还是服务器端,刚开始都需要向系统申请套接字socket,然后通过socket来实现发送和接受消息,只不过服务器端需要把该套接字绑定到某个端口通过调用
2017-12-11 11:57:50
424
1
转载 java中==和equal的区别
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。==比较的是2个对象的地址,而equals比较的是2个对象的内容。显然,当equals为tr
2017-12-07 19:57:47
178
原创 Java 对象的序列化
一.对象序列化的作用我们都知道Java是一门面向对象的语言,自然很多地方,都要有这种思想,网络传输数据,或者保存到磁盘文件中,是否可以以直接保存或则传输一个对象,数据都封装在对象里面(这样可以大大减少我们传输数据的操作),答案是一定的,对象的序列化就提供这样的作用。二. 怎么实现序列化对象序列化:把对象转换成字节流的过程 。 反序列化:从字节流中重构一个对象的过程。 让一个对象成为可序列化的
2017-11-02 22:32:19
220
原创 Activity的四种启动模式
本篇介绍Android的Activity的四种启动模式,分别为:standard , singleTop , singleTask , singleInstance. 任务栈:android用来存放activity组件的栈(后进先出),一个APP可以有多个任务栈 standard: 标准模式,也是系统默认的模式,每次启动一个Activity都会重新建一个新的实例,在这个模式下,
2017-10-17 16:26:40
215
原创 Java在进行网络传输的过程中的奇技淫巧
今天,翻书的时候看到书上的网络传输数据的时候,顿时感觉之前的自己的操作太low了,这篇主要讲,在网络传输的过程中,你发送请求,但是你现在界面又需要根据返回的数据来更新界面,但数据什么时候返回你又不知道,这时候该怎么办?之前我直接在主线程里面一个死循环判断接受信息是否为空让其等待,可能一直网好所有很少导致ANR问题, 书上说的就是采用Java的回调机制,看Java回调机制参考 现在写代码实现,采用
2017-10-07 18:07:34
767
2
原创 源码分析listview的adapter的notifyDataSetChanged方法分析
我们在使用listview控件的时候,总是会因为数据的改变,而需要更新listview控件的内容,这时候总是会调用adapter的notifyDataSetChanged()方法,现在分析一下,调用这个方法具体实现了什么步骤。 首先调用了mDataSetobservable.notifyChanged() (DataSetObservable类)方法 接着 循环调用了 在DataSetO
2017-09-28 18:26:51
571
原创 Arraylist<T>等实现自定义的排序算法
考试的时候,本想到Arraylist可以自定义排序算法,可是忘记了返回值(当时看不了源码),后面只能自己写了个冒泡排序(效率太低了),现在说说如何自定义排序算法import java.util.ArrayList;import java.util.Comparator;public class test { public static void main(String[] args) {
2017-09-18 20:24:13
950
原创 算法介绍:Dijkstra算法
什么是Dijkstra算法 ?Dijkstra算法指的是:计算某一点到其余各个点之间的最短距离,该算法主要试用于边距离为正数的请况。Dijkstra算法介绍Dijkstra算法:把图里面的点分成两个集合,S,V,S这个集合里面是已经确认到你想要求的点(这里假设为A点)的最短路径的长度,算法刚开始S里面只有A点,然后计算A到各个点的距离,取最短路径,把该点(B),加入到S集合中,然后计算A到各个点以
2017-09-17 21:00:28
877
原创 源码分析Java的观察者模式
java中的观察者模式,简而言之就是多个对对象对一个对象的观察,当被观察者改变时,会通知观察者。Java为这种模式,特地的提供Observable类和Observer接口实现这种模式,先看下面的代码实现观察者模式被观察者类class Sub extends Observable{ private String msg; public String getmsg(){
2017-09-13 18:59:50
225
原创 Java实现快速排序算法
排序算法采用的是分而治之的方法,刚开始需要选择一个基准值,以这个基准值,把数组分成两部分,左边小于基准值的数组,右边大于基准值的数组(假设我们要实现从小到大的排列),然后在对左边序列选取基准值再把该序列一分为二,右边序列也一样,直到分到不能分为止,一直递归下去,就自然成为有序序列,快速排序的平均时间复杂度为nlog(n),但是也有缺点就是快速排序算法的稳定性不足,对于相同大小的值,因为两个值的位置不
2017-09-11 20:40:55
183
原创 如何阻止handler的消息处理
*本次的文章介绍,如何阻止handler的消息处理,是来源于自己写的小程序中,在一个界面中需要反复向服务端发送某个请求,而当这个界面被切换到另一个界面的时候,该hander的handlermessage就不能再处理该类信息,如下面所示:final Handler handler = new Handler(){ @Override public void handle
2017-08-26 12:37:57
706
原创 Android 控件Edittext详解
Android 控件Edittext详解主要介绍Edittext的函数 这是从Android官网上面下截下来的主要函数,我一一探求。先讲一下我经常用到的功能 -在xml文件中常见的设置 * android:hint=”什么什么”* 这个指定是Edittext中相当于提示edittext中所要填写的文字如下图中的搜索就是用hint指定的,当然在edittext中图片和
2017-03-22 19:44:32
850
原创 Android中如何实现圆形按钮的颜色变化
实现圆形按钮的变色和圆形按钮的变化,实现下面的效果1.第一步在drawable的文件下面建立一个xml文件 让它继承shape 代码如下 //“oval”是椭圆的意思 //这里表示半径 //圆的颜色 然后你就可以在你的button按钮上面用了如何在代码中实现颜色的改变呢? 题主又建立了跟上面一样的xml文件只是中的颜色改变了一下 下面是代码实现public class Main
2016-12-11 20:53:40
3655
原创 解决android中点击对话框外部,对话框消失的问题
我在写项目时遇到了,需要用到AlertDialog,在这个发现过程,起初什么问题,可是到真正用的时候发现,当你点击弹框外部区域的时候,弹框消失,可是我被没有设置,所以查了好久发现解决方法dialog2 = new AlertDialog.Builder(this) .setTitle("提示").setMessage("请打开网络").setPositiveButton("已打开",null)
2016-11-14 21:06:04
1622
转载 android新建工程报找不到android:preserveIconSpacing的错误
点击打开链接在Eclipse中创建一个工程的时候,有时会报这样的错误ERROR: In MenuView, unable to find attribute android:preserveIconSpacing。如图:这样的错误一般是有环境或者Eclipse工具导致的,换一个工作空间或者重新导入一下就会好的。这里除了这种方法再介绍另一种方法解决此类问题。
2016-11-13 14:51:32
5444
原创 (01)关于我在使用百度地图开发常见到的问题
(首先是到百度地图开发的网站去下载SDK) 相关的一些步骤我是按照http://www.cnblogs.com/dqrcsc/p/4656522.html 1》上面的教程写的 但其中有一步骤他说 “然后是应用包名,随便给即将用到百度地图API的应用取个包名就好了,我取的是cn.csc.bm,两个拼接起来就是安全码了:”这句话的包名很重要,不是随便取的,包名就是你建立的那个项目的m
2016-10-09 15:09:01
2206
原创 编写一个程序,它使用一个char数组和循环来每次读取一个单词,直到输入done为止并用strcmp检测
#include#includeusing namespace std;void main(){int counter = 0;char ch[10]="0";cout cin >> ch;while (strcmp(ch,"done")!=0){cin >> ch;counter++;}cout }更多0分享到:
2016-05-12 17:53:15
4085
Java第二次作业 完整版
2017-07-10
Java第二次作业 Huffman树
2017-07-09
Java第二次作业
2017-07-05
Java小假期第一次作业
2017-06-28
在C语言函数中调用汇编语言程序实现字符串的拷贝
2017-06-09
数据结构上机
2016-11-10
何增有数据结构
2016-11-03
数据结构T5
2016-10-27
设双链表表示的线性表L=(a1,a2,....,an),试写一时间复杂度为O(n)的算法,将L改造为L=(a1,a2,,,,an....,a4,a2)。
2016-10-13
eclipse出什么问题了??
2016-09-09
如何实现在有限时间这个功能?
2016-06-27
listview的用法求教。。。。
2016-03-19
这是什么原因????
2016-03-03
想了蛮久的也不知道这些代码什么错误?
2016-03-01
这是什么类型错误?看了蛮久
2016-02-29
为什么我结束了线程依旧在运行?
2016-02-21
这是什么情况???android中的错误
2016-02-21
为什么我的eclipse越用越卡?。
2016-02-20
Android中出现这种情况为什么?
2016-02-14
用vs2015出现闪退为什么???
2015-12-13
求高手解答这道题目,,有点挑战喔。。
2015-12-07
c语言中的字典排序??求问。。
2015-12-03
这是怎么回事??初学者。。。
2015-11-27
如何才能消除warning。。。。。。。。。
2015-11-25
andriod用布局输出自己的基本信息要怎么做?
2015-11-14
java中的char类型数组怎么对其赋值?
2015-11-13
TA创建的收藏夹 TA关注的收藏夹
TA关注的人