自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

leelit笔记本

努力成为一名靠谱的工程师

  • 博客(87)
  • 资源 (20)
  • 问答 (1)
  • 收藏
  • 关注

原创 HTTPS IP直连问题小结

背景任何一个移动APP项目都离不开网络接入功能,提升网络接入的质量几乎是所有移动项目的需求。很多项目都会引入HTTP DNS作为网络接入最基础也是最重要的优化之一。HTTP DNS的核心是后台下发某个域名对应的最优IP,基本点的可做到就近接入,即下发该域名终端就近地同运营商的IP,好一点的则根据线上用户实际测速数据下发最优的IP。而终端只需在HTTP接入时,将URL中的HOST从域名直接替换为后台下

2017-09-04 04:11:32 37826 8

原创 TCP小结

简介TCP是传输层最重要的协议,相比于另外一个也很重要的UDP协议,TCP协议有如下几个特点:面向连接,端到端全双工通信面向字节流可靠传输流量与拥塞控制TCP依赖于底层不可靠的IP协议,网络层的IP数据报路由是不可靠的,一不保证顺序,二没有出错丢失重发等机制,所以要想实现可靠传输,传输层必须要有各种各样的控制。本文内容大部分来自谢希仁的《计算机网络》以及《图解TCP/IP》两书,图也基本截

2017-02-19 02:12:42 1011

原创 Android:NDK开发流程

简介Java程序通过JNI实现与本地C/C++代码的交互,而NDK则是Android平台上便于进行JNI开发的工具。流程NDK的开发流程如下:下载NDK,设置环境变量,项目配置NDKJava文件定义native接口javah生成C/C++头文件编写C/C++代码编写Android.mk、Application.mk编译出so文件使用so文件下面在Windows环境下逐项介绍,其他环境

2017-01-07 12:58:50 656

原创 Android:IPC,Messenger,AIDL

简介IPC,即进程间通信。常见的IPC场景有两种,一种是单个应用开启多个进程,这些进程间需要通信;另外一种是不同应用间的进程间通信。单个应用开启多个进程并不复杂,只需要为四大组件声明一个android:process属性,这个组件便会运行在该声明的进程上。而这个属性的声明方式有两种:以:号开头,比如android:process=":remote",这时这个组件便运行在package_name:r

2016-10-22 20:46:42 850

原创 单元测试:Mockito

简介Mockito官网的简介只有一句话:Tasty mocking framework for unit tests in Java,用于Java单元测试的mock框架。mock的意思是虚构,即根据现有的类或者接口,去虚构一个对象。而Mockito主要就是两个作用:1、verify;2、stub。Mockito是配合单元测试使用的,使用前引入两个依赖就可以了:testCompile 'junit:j

2016-08-25 00:07:32 845

原创 Effective Java读书笔记(四):并发

前言以前当我在网络上看到爆发语言大战时,也会在一旁“看戏”,这个语言怎样怎样,那个语言怎样怎样,感觉挺有趣的,我对其中的褒贬也会半信半疑。后来我慢慢对这些言论不再感兴趣,基本上看到就会跳过,除非是对多门语言都非常熟悉的人发表的,比如说某知乎大v曾经写的Java sucks,C# rocks文章,这样的文章才更值得一读。这样的想法转变是因为,一般而言当我对任何东西更加熟悉时,我才会更加知道原来自己不懂

2016-05-22 17:33:56 868

原创 Java:interrupt()、interrupted()、isInterrupted()

记得以前初学Java时老是搞不清这几个方法,现在稍微记录一下。 这算是 Java:sleep、wait、notify、notifyAll这篇文章的姊妹篇吧^_^前言一条线程进入阻塞的状态,可能有几个比较常见原因:该线程调用了Thread.sleep()方法该线程,某个对象调用了wait()方法该线程正在等待I/O该线程调用其他线程正占有锁的同步方法/块前两者和后两者有个重要的区别,前两者

2016-05-18 00:15:27 999

原创 Git基础知识(二)

前言本篇是 Git基础知识(一)的延续,由于篇幅原因,分成两篇。我们重新建立一个文件夹,执行git init。添加一个有三行aaaaa内容的git.txt文件,并commit。分支截止目前,我们都是在一个叫做master的分支上工作。Git允许我们创建分支去做一些其他的事儿,而不影响到你的master分支。1. branchbranch命令可以查看分支、创建分支以及删除分支。a. 查看分支git b

2016-04-21 01:17:34 3904

原创 Git基础知识(一)

前言Git是一个开源的分布式版本控制系统。本文很多内容翻译自: https://www.codecademy.com/learn/learn-git使用Git的第一步是下载Git,下载地址,安装时所有选项都默认选择即可。基本工作流程1. init首先新建一个文件夹,进入文件夹后右击鼠标,选择git bash,敲打命令git initgit会生成一个隐藏的.git文件夹,里面的内容用于版本控制。

2016-04-20 14:52:40 1927 2

原创 Effective Java读书笔记(三):泛型、枚举、注解、异常

来到读书笔记的第三篇了,这一次的主题是讲泛型、枚举、注解这三个Java1.5引入的语言特性。关于泛型,很久以前我写过一篇初识的文章,http://blog.csdn.net/leelit/article/details/39504873,里面的一些基础知识现在看起来依然能起到复习作用。而另外两个特性的基础知识这里不再展开,因为Effective Java这本书讲的就是一些编程技巧或者说良好的习惯。然

2016-04-02 20:02:56 1062

原创 Effective Java读书笔记(二):方法、通用程序设计

方法0. 方法太多会使类难以学习不要过于追求提供便利的方法,每个方法都应该尽其所能,只有当一项操作被经常用到的时候,才考虑为它提供快捷方式。1. 谨慎设计方法签名谨慎地选择方法的名称,一般使用约定俗成的方式。避免过长的参数列表,可以通过1)分解方法、2)创建辅助类(一般为静态成员类)用于保存参数、3)Builder模式,这三种方法来缩短参数列表。对于参数类型,优先使用接口而不是类。如果可能涉

2016-03-23 15:20:30 669 1

原创 Effective Java读书笔记(一):类、接口、对象

前言“可能有人认为我不需要任何Java方面的书籍,但是我需要这本” - James GoslingJava领域有几本被奉为圣经的书籍,其中(我认为)最著名的两本是《Thinking in Java》以及《Effective Java》。如果说Java编程思想教会我们Java这门语言,那么Effective Java则教会我们如何写出更好的Java语言程序。这本书对于API开发程序员更为对口,但是对于

2016-03-14 00:12:18 704

原创 Android:MVP模式

简介关于MVP的介绍网上有很多,这里不再累述,虽然大家的实现方式也许各不相同,但是有一些基本的共识:Model:数据模型;View:用户界面,一般对应于Activity、Fragment;Presenter:作为View和Model的桥梁,实现两者解耦。MVP的核心是:将View中与UI无关的部分逻辑转移到Presenter中。其依赖关系如下: View与Presenter相互依赖,Pre

2016-03-07 15:37:16 858

原创 Java:字符乱码问题

Java字符集的问题,有时候真的会让人很头疼,所以有必要整理一下。我们可以通过调用java.nio.charset.Charset.defaultCharset();获得JVM的默认字符集。默认的字符集依赖于你的系统,通常中文Windows系统都是以GBK字符集进行编码/解码。1、用记事本新建一个d:\charset.txt文件,内容为abc你好,这个文件默认编码为ANSI,这

2016-01-13 13:36:27 2064

原创 Android:单元测试

前言对于Android的单元测试一直有些弄不明白,虽然要进行单元测试并不复杂,但是其中的关系好像有点复杂,包括怎样在Eclipse进行单元测试,又怎样在Android Studio进行单元测试,怎样进行Local的测试而不需要运行真机或虚拟机,各种TestCase有什么不同,为什么Junit4好像很难work的样子…等等问题,我试着一一弄明白这些问题。这篇文章不涉及UI测试。简介 单元测试是ap

2015-12-24 16:29:03 1122

原创 Java:断点续传

简介我们下载文件或者其他内容时,常常都是通过Http协议直接请求整个文件。所以常见的方法是直接判断服务器返回的状态码,如果返回200,就开始写。所谓断点续传,就是指不请求整个文件,而是请求部分文件,如果服务器支持分段请求,则返回相应的分段内容,否则返回整个文件。我们可以通过断点续传来实现多条线程来下载同一个文件,加快速度;也可以通过断点续传实现暂停/恢复下载的功能,试想,如果没有断点请求,每次都是请

2015-12-22 18:45:30 803

原创 一步步构建Material Design风格App

这篇文章是对前面三篇文章的一个总结5.x控件:Toolbar、TabLayout、CoordinatorLayout5.x控件:FloatingActionButton、SnackBar、DrawerLayout、NavigationView5.x控件:CardView、RecyclerView、SwipeRefreshLayout从自定义主题开始一步步构建Material Design风格

2015-12-07 09:50:46 1420 1

原创 5.x控件:CardView、RecyclerView、SwipeRefreshLayout

首先啥也别说,先引入依赖包。 compile 'com.android.support:cardview-v7:22.2.1' compile 'com.android.support:recyclerview-v7:22.2.1'CardViewCardView继承自FrameLayout,其中有一个比较常用的属性,就是指定其Cornerapp:cardCornerRadius="5

2015-12-02 22:43:24 814

原创 5.x控件:FloatingActionButton、SnackBar、DrawerLayout、NavigationView

首先啥也别说,先引入support包。compile 'com.android.support:design:22.2.1'FloatingActionButton & SnackBar这两者的使用都比较简单,所以一起说下。FloatingActionButton其实就可以视作一个ImageButton,事实上他也是继承ImageButton。而SnackBar的使用方法和使用场景感觉和Toast有

2015-12-01 20:43:52 1057 2

原创 5.x控件:Toolbar、TabLayout、CoordinatorLayout

随着Material Design的推出,也多了很多MD风格的控件,接下来会学习一下这些新控件的用法。首先啥也别说,先引入support包。compile 'com.android.support:design:22.2.1'ToolbarToolbar用于取代ActionBar,Toolbar supports a more focused feature set than ActionBar.。

2015-11-30 22:15:00 1271

原创 JavaWeb开发环境搭建、项目建立与发布

开发环境JDK https://www.oracle.com/,(下载1,.7版本,因为后面发布是在sae平台,该平台只支持1.6/1.7所以就下了1.7)Eclipse http://www.eclipse.org/,下载Java EE版本Tomcat http://tomcat.apache.org/,有时候不同版本的Eclipse对Tomcat的支持有所不同,我用的是8.0版本,而刚点进

2015-11-21 17:01:33 794

原创 Java:sleep、wait、notify、notifyAll

记得以前初学Java时老是搞不清这几个方法,现在稍微记录一下。概述sleep是Thread这个类的一个静态方法,调用时则当前线程睡眠多长时间; wait是Object类的一个方法,某个对象调用wait方法时,当前线程等待多长时间。某个对象调用wait/notify/notifyAll方法前,必须获得这个对象的锁,否则会抛出java.lang.IllegalMonitorStateException

2015-11-07 11:16:16 736

原创 Android控件:自定义View学习资源汇总

最近在学习自定义View,按照自己的理解简单罗列下一些学习资源,循序渐进。准备篇自定义View必须学习的两大主题,分别时View/ViewGroup的绘制流程,以及View/ViewGroup的事件分发流程。绘制流程 Android视图绘制流程完全解析,带你一步步深入了解View(二) Android View系统解析(下) Android:View绘制流程事件分发 Android事件分

2015-11-05 15:54:00 3018 1

原创 Android控件:自定义View和ViewGroup相关

这篇文章将讨论几个问题:px、dp、sp等尺寸相关View测量相关canvas的绘制方法ViewGroup测量布局padding与margin自定义View和ViewGroup的方法回调时机尺寸问题我们常说的分辨率,比如480*800,指的是屏幕横向有480个像素点,纵向有800个像素点,这里的像素点指的是Pixel,也即px。在同样物理尺寸的手机上,相同数量的像素在高分辨率手机上显然

2015-10-23 18:13:27 1208

原创 Android控件:自定义属性

当我们自定义View时,有时候需要提供一些自定义的参数,怎样来提供这些自定义的属性呢?步骤如下:1、在res/values下建立一个attrs.xml文件; 2、在自定义View构造函数里面获取这些属性; 3、在布局文件中指定命名空间以及填写属性。新建xml文件res/values/attrs.xml,使用到declare-styleable标签,该标签的内容是attr标签,有name和form

2015-10-19 15:29:22 579

原创 Android:动画系统

目前Android上有三种动画实现,分别为tweened animation、frame-by-frame animation以及3.0后新增的PropertyAnimation。tweened animation简介tweened animation可以实现四种动画效果,分别为:平移,对应translation旋转,对于rotate缩放,对应scale淡化,对于a

2015-09-16 16:35:19 928

原创 Android:View绘制流程

View的绘制流程从ViewRoot的performTraversals()方法开始,主要经历三个过程:measure、layout、draw。一、measure过程1、调用View的measure(int widthMeasureSpec, int heightMeasureSpec),方法接收两个参数,widthMeasureSpec和heightMeasureSpec,这两个值分别用于确定Vi

2015-09-13 17:36:42 698

原创 Android:AsyncTask源码解析

简例private class MyAsyncTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... params) { String str = params[0]; return "disposed " + str;

2015-08-19 11:07:39 715

原创 Android:异步消息Handler源码解析

这篇文章主要是从源码角度来解析这套异步机制。

2015-07-31 11:58:15 699

原创 Android:AS环境下用AIDL进行IPC

本文主要讲的是如何在AS环境下通过AIDL进行IPC,而不是主要讲AIDL和IPC,这部分内容可以参考其他文章,或者官方文档http://developer.android.com/guide/components/aidl.html。因为自己在网上看到的实践都是Eclipse环境下的,所以试了下AS,分享给大家。什么是AIDLAIDL allows you to define the progra

2015-07-21 20:55:35 2880

原创 Android:管理应用内存

所有内容均来源于官方文档https://developer.android.com/training/articles/memory.htmlonly way to completely release memory from your app is to release object references you may be holding, making the memory availabl

2015-07-21 11:43:28 1477

原创 Android:Volley源码解析

简单实例Volley是一个封装HttpUrlConnection和HttpClient的网络通信框架,集AsyncHttpClient和Universal-Image-Loader的优点于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载并缓存下载的图片。Volley在性能方面也进行了大幅度的调整,它的设计目

2015-07-12 10:36:42 849

原创 Android:图片处理小结

图片处理在安卓开发中十分重要,因为:系统资源有限,系统为单个应用分配的内存也有限;图片占用大量内存,例如一张2592x1936像素的图片,如果以ARGB_8888编码,会占据2592*1936*4 bytes约19M的内存,这无疑会很容易造成OOM!一些控件尤其是AdapterView,会需要加载较多图片,处理不当也会OOM。本文全部内容均来源于官方文档Displaying Bitmaps

2015-07-09 20:41:30 891

原创 Android:ViewGroup事件分发机制

关于ViewGroup事件分发机制的文章已经有很多了,推荐郭霖和鸿洋的两篇文章, http://blog.csdn.net/guolin_blog/article/details/9153747 http://blog.csdn.net/lmj623565791/article/details/39102591 结合他们写的,自己简单总结一下,可能只适用个人。流程在上一篇文章中讲到,当你操作

2015-06-14 21:03:51 785

原创 Android:View事件分发机制

关于View事件分发机制的文章已经有很多了,推荐郭霖和鸿洋的两篇文章, http://blog.csdn.net/guolin_blog/article/details/9097463 http://blog.csdn.net/lmj623565791/article/details/38960443 结合他们写的,自己简单总结一下,可能只适用个人。流程只要你触摸到了任何一个控件,就一定会调用

2015-06-13 15:28:01 811

原创 Java:内存相关认识

JVM管理的内存程序计数器(PC):每条线程都有独立的PCJVM栈(Java栈):描述的是Java方法执行的内存模型,每个方法被执行的时候会创建一个栈帧用于存储局部变量表、操作栈、动态链接、方法出口等信息,也是线程私有的。本地方法栈:与Native方法相关Java堆:线程共享的内存地址空间,用于存放对象实例,也是GC管理的主要区域。直接内存:与Native堆相关方法区:存储已被JVM加载

2015-06-01 13:04:20 933

原创 Java:线程池基础

基本认识以下摘自百度百科 线程池的概念:线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。 线程池的作用:在面向对象编程中,创建和销毁对象是很费时间的,因为创建一个对象要获取内存资源或者其它更多资源。在Java中更是如此,虚拟机将试图跟踪每一个对象,以便能够在对象销毁后进行垃圾回收。所以提高服务程序效率的一个手段就是尽可能减少创建和销毁对象的次数,特别是一

2015-05-24 17:32:11 769

原创 Java:设计模式六大原则

在面向对象设计领域,软件开发人员在开发过程中总结了不少的经验,许多经验在现代软件开发过程中已经被认为是原则来被遵守。单一职责原则单一职责原则(SRP:Single responsibility principle)又称单一功能原则,它规定一个类应该只有一个发生变化的原因。单一职责原则就是指一个类或者模块应该有且只有一个改变的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的

2015-05-11 21:22:06 788

原创 笔试面试经验

这篇文章是之前写给部门的师弟师妹的,做了一点点修改,分享给看到这篇文章的人吧~~备注:EI为STU嵌入式创新俱乐部For EI 师弟师妹:在写这篇文章之前,我又一次打开了向本师兄的经验分享文档(当你读到这里而自己还没看过他的经验分享时,建议你先去看看),这已经是我第三次打开完完整整的看他写的经验分享了,写的真的很好!这也是为什么我会想写这篇东西的原因,因为我希望EI是一个可以将

2015-05-04 11:46:05 1407

原创 Java:RTTI与反射机制的一些概念

以下内容大部分取于《Java编程思想第四版》RTTI简介RTTI(Run-Time Type Information),运行时类型信息使得你可以在程序运行时发现和使用类型信息。主要有两种方式:传统的RTTI:假定我们在编译时已经知道了所有的类型;反射机制:允许我们在运行时发现和使用类的信息。RTTI的最基本使用形式,所有的类型转换都是在运行时能正确性检查的。Class对象Class对象就是用

2015-04-27 20:14:59 795

高仿微信主UI

高仿微信主UI

2015-04-02

ExpandableTextView

from https://github.com/Manabu-GT/ExpandableTextView

2015-03-30

PullToRefresh-chrisbanes

https://github.com/chrisbanes/Android-PullToRefresh/wiki/Quick-Start-Guide

2015-03-23

ListView下拉刷新

https://github.com/chrisbanes/Android-PullToRefresh

2015-03-23

PullToRefresh

开源项目:https://github.com/chrisbanes/Android-PullToRefresh

2015-03-23

Android-PullToRefresh-master

GitHub上面的开源项目https://github.com/chrisbanes/Android-PullToRefresh

2015-03-23

蓝牙重力感应小车

智能小车 蓝牙小车 重力感应小车 如果喜欢我的作品 请在https: github com leelit SmartCar上点个赞 谢谢 ^ ^

2015-03-20

apache服务器

apache服务器2.2

2014-11-30

FragmentWeixin

FragmentWeixin

2014-11-20

SmartCar

SmartCar

2014-09-27

AppWidget_FlashLight

AppWidget_FlashLight

2014-09-27

FragmentDemo

FragmentDemo

2014-08-23

BluetoothCar

BluetoothCar

2014-08-17

android_蓝牙

android_蓝牙.doc

2014-08-17

HandlerDemo

HandlerDemo

2014-08-04

BroadcastReceiverDemo

BroadcastReceiverDemo

2014-08-04

ServiceDemo

ServiceDemo

2014-08-04

IntentDemo_3

IntentDemo_3IntentDemo_3IntentDemo_3

2014-08-03

IntentDemo_2

IntentDemo_2

2014-08-03

IntentDemo

IntentDemo

2014-08-03

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

TA关注的人

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