- 博客(12)
- 收藏
- 关注
原创 UDP穿透NAT实现p2p
什么是NATNAT(Network Address Translation),网络地址转换。是1994年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。 。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址。这样,所有使用本地地址的主机在和外界通信时,都要在N
2017-07-14 14:13:03
922
原创 自定义FlowLayout
自定义ViewGroup具体要实现以下几个步骤。onMeasure 在onMeasure里实现对子view的测量,并且根据子view的测量结果决定FlowLayout的大小。主要测量ViewGroup在AS_MOST模式下的大小。onLayout 在这里对子view进行布局,决定自view的位置。对于本例,FlowLayout为流式布局。当前行剩余空间大于子View占用的大小时,子View往后
2017-06-06 15:30:34
354
原创 Android WebView和JavaScript交互
现在移动应用几乎都是 Hybrid App(混合模式移动应用)是指介于web-app、native-app这两者之间的app,兼具“Native App良好用户交互体验的优势”和“Web App跨平台开发的优势”。 而hybrid的实现关键在于打通Java和JavaScript之间的交互。 在Android开发中我们是使用WebView控件来加载HTML页面的,WebView默认为我们提供了让J
2017-05-28 22:23:28
319
原创 Kotlin初探
Kotlin语言在上周末召开的谷歌IO大会上,谷歌宣布:将Kotlin语言作为安卓开发的官方编程语言。 Kotlin由JetBrains公司开发一个基于 JVM 的新的编程语言,它的最大特点之一就是与Java 100%互通,并具备诸多Java尚不支持的新特性。在这里就不在多说,要想了解更多戳下面链接:https://www.kotlincn.net/Kotlin语言会不会取代Java呢将Kot
2017-05-23 23:41:24
263
原创 对象的序列化和Socket简单使用
对象序列化就是把对象转化为字节序列的过程,相对的反序列化就是把字节序列转化为对象的过程,是把对象转化成容易传输的流的方法,一般是生成传输的字节流或者是IO文件(长期存储)。 相信大家在学习一个新知识点之前都会有疑问,这样做的目的是什么。对象序列化的一般利用在对象的远程传输和对象共享。 当两个进程在进行远程通信时,彼此可以发送各种类型的数据。无论是何种类型的数据,都会以二进制序列的形式在网络上
2017-05-17 20:13:43
3899
1
原创 打造优美列表布局——进阶篇
比起ListView,RecyclerView可以自定义LayoutManager来实现不同的页面布局。并且可以利用开源的LayoutManager来实现我们的高雅布局。我使用的是FanLayoutManager来实现图书列表。先来看看Demo效果图。(FanLayoutManager地址:https://github.com/Cleveroad/FanLayoutManager)2.pn
2017-05-17 14:54:47
272
原创 打造优美列表布局——基础篇
最近学习使用第三方LayoutManager实现了优美的图书列表,记录下我的学习历程,同时写给学弟学习使用。为此我分成了基础和进阶篇,基础篇主要讲利用RecyclerView实现我们的列表展示,主要涉及到的知识是RecyclerView的使用和自定义item点击事件。进阶篇讲解怎么利用开源的LayoutManager实现优美的图书展示页面。本次的大纲1.1 RecyclerView的基础使
2017-05-17 14:54:44
359
原创 JDBC数据库操作
在学习之前我们首先了解一下什么是JDBC,JDBC有什么用。JDBC是什么JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。简单来说JDBC提供给我们程序对数据库之间的桥梁,使我们的程序操作数据库变得简单。利用JDBC可以使我们方便的操作数据库。使用JDBC的好处有了JDBC,向各种关系数据发送SQL语句
2017-05-17 14:54:42
419
原创 Android跨程序共享数据,探究内容提供器(进阶篇)
上一章讲到怎么使用ContentResolver访问系统提供的数据接口读取联系人信息,那么系统程序是怎样对外建立并开放这些数据接口的呢?好多时候我们自己应用程序也需要数据共享的功能,以便于其他程序访问我们的数据,那么我们该怎么实现我们自己的数据接口,接下来让我们来一起学习。其实把我们程序的数据提供给其他应用程序使用有好多方式,比如我们把数据写到一个文件里面,让其他程序读取我们的文件。但是这样并不能
2017-05-17 14:54:39
585
原创 Android跨程序共享数据,探究内容提供器
《Android第一行代码》内容提供器简介内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,同时还能够保证被访问数据的安全性。目前,使用内容提供器是Android实现扩平台共享数据的标准方式。不同文件储存和SharedPreferences储存中的两种全局可读写操作模式,内容提供器可以选择只
2017-05-17 14:54:36
617
原创 ImageLoader的实现(2)-ImageLoader的具体实现
1.1 ImageLoaderde介绍一个优秀的ImageLoader应该具备以下功能:图片的同步加载;图片的异步加载;图片压缩;内存缓存;磁盘缓存;网络拉取。图片的同步加载是指能够以同步的方式向调用者提供所加载的图片,这个图片可能是从内存中读取的,也可能是从磁盘缓存上读取的,还可能是从网络上下载的。图片的异步加载是一个很有用的功能,很多时候调用者不想在单独的线程中以同步的方式
2017-05-17 14:54:34
265
原创 ImageLoader的实现(1)-LruCache和DiakLruCache
参考文献《Android开发艺术探索》LRU(Least Recently Used),LRU是近期最少使用算法,它的核心思想是当缓存满时,优先淘汰近期最少使用的缓存对象,采用LRU算法的缓存有两种,分别是:LruCache和DiskLruCache。DiskLruCache充当了储存设备缓存,通过这两个结合可以实现具有很高实用性的ImageLoader。1 LruCache1.1 LruC
2017-05-17 14:54:31
247
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人