自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 资源 (5)
  • 问答 (4)
  • 收藏
  • 关注

原创 AndroidPro ADB命令

ADB是Android的调试工具,也是一个C/S程序,客户端是主机,服务端是连接的Android设备,其工作方式是监听Socket TCP 5554端口来操作Android设备,主要命令如下 adb基本命令// 停止和启动adb服务adb kill-server adb start-server// 打印 Android 的系统日志adb logcat// 打印dumpsy...

2018-12-20 22:18:30 243

原创 Android自定义组件——3D立体旋转控件

BingoIdea一个3D立体切换的自定义ViewGroup demo,支持横向和纵向滑动翻转。项目配置在项目的build.gradle配置allprojects { repositories { maven { url 'https://oss.sonatype.org/content/groups/public' ...

2018-08-02 12:23:11 1728 4

原创 Java面试-1 java基础知识点

八基本数据类型和封装类byte:1字节short:2字节int:4字节long:8字节float:4字节double:8字节char:2字节boolean:1字节注意:英文字符栈1字节,中文汉子或标点占2-3字节equals和====:用于比较基本数据类型值是否相等和引用类型是否指向同一个对象(内存中的地址)equals:Object类的方法,默认比较两个对象的内存地址是否相等。很多类如Strin...

2018-04-18 15:27:33 418

原创 Android面试-12 Android性能优化

性能问题内存泄漏:分配出去的内存(一些可达的,无用对象)无法回收。可以借助MAT内存泄漏分析工具分析。内存溢出:程序要求的内存超出了系统所能分配的内存范围。内存泄漏时内存溢出的一种诱因,也有其他原因造成内存溢出。ANR:过多使用CPU资源,执行大量耗时任务,导致手机卡顿甚至无响应。我们可以通过产生的traces.txt定位产生ANR的问题原因。性能优化方法布局优化减少无用布局和层级,用一些低耗能V...

2018-04-18 13:17:24 153

原创 Android面试-11 Bitmap和缓存

高效加载Bitmap采用BitmapFactory.Option来加载合适尺寸图片,按照一定的采样率加载缩小后的图片Android缓存策略添加:第一次从网络加载后,缓存到磁盘和内存获取:先检查内存中是否有,若没有然后检查磁盘,若没有请求网络删除:LRU策略,缓存满后淘汰近期最少用的缓存对象。内部采用LinkedHashMap以强引用的方式存储外界缓存对象。图片加载器同步加载:先检查是否在主线程,在...

2018-04-18 13:04:14 203

原创 Android面试-8 多进程通信

Android多进程进程和线程进程:是运行中的程序,资源分配的单元,进程拥有的资源多,进程间的切换代价大线程:是进程内部的一个执行序列,是cpu的基本调度单位,拥有资源小,切换代价小,多个线程共享进程的资源使用多进程通信场景需要向其他应用获取数据某些应用模块需要单独运行在进程中(WebView优化,后台进程)加大一个应用可使用的内存(获取多份内存空间)多进程原理和产生的问题Android为每个进程...

2018-04-18 12:52:40 387

原创 Android面试-7 多线程

Android中的线程Thread及其子类可以继承Thread或者实现Runnable的方式开启新线程AsyncTask底层是两个线程池和一个静态Handler实现,一个线程池用于任务排队,另一个用于真正执行任务。只有doInBackground方法是在线程池中执行异步任务,其他回调方法都在主线程运行,AsyncTask类和对象一定要在主线程加载和创建,execute方法一定要在主线程调用,且只能...

2018-04-18 11:31:41 159

原创 Android面试-5 Android消息机制

消息机制概述Handler利用当前线程的Looper创建内部消息循环系统,主要负责发送和处理消息。另外,也可以通过一个Looper创建一个Handler,这样handler发送的消息就会在Looper所在的线程执行。MessageQueue以队列的形式(内部存储结构为单链表)存储和操作消息列表,包含插入和读取消息两个操作,读取是一个无限循环的方法,若消息队列没有消息则一直阻塞,有消息则读取并将其移...

2018-04-17 18:38:56 176

原创 Android面试-4 ContentProvider

简介共享型组件,用于其他组件乃至其他应用共享数据,内部需要实现CRUD操作,并且维持了一套数据集合,主要CRUD要处理好对线程同步,因为这些方法是在Binder线程池中被调用的...

2018-04-17 18:05:09 289

原创 Android面试-3 Service

简介计算型组件,有两启动和(用于执行后台计算)绑定(用于其他组件和Service交互)两种运行状态,前者通过startService开启,后者通过bindService开启。注意多次绑定同一个Service,onBind只会调用一次...

2018-04-17 18:02:36 165

原创 Android面试-2 BroadcastReceiver

简介BroadcastReceiver是消息型组件,用于不同组件甚至不同应用传递消息,四大组件中,只有BroadcastReceiver既可以在AndroidManifest也可以在java代码中注册,其他的都必须在AndroidManifest中注册。基本操作定义广播接受者继承BroadCastReceiver重写onReceive注册广播静态广播:在AndroidManifest注册,应用安装...

2018-04-17 17:56:37 141

原创 Android面试-6 Android动画

View动画作用对象为View,有平移,旋转,缩放,透明度四种效果。可以通过基础Animation自定义View动画。应用如View的出场效果帧动画顺序播放一系列图像产生动画效果,先通过xml定义AnimationDrawable,再将其作为View背景最后,通过drawable.start()播放动画。切换动画Activity可以设定切换效果(Transaction),Fragment也可以添加...

2018-04-17 16:49:19 351

原创 Android面试-10 View工作原理

基本概念ViewRoot对应ViewRootImpl类,是连接WindowManager和DecorView的纽带,View的三大流程由ViewRoot的performTraversals开始,依次调用performMeasure,performLayout,performDraw完成顶级View的三大绘制流程。DecorView顶级View,内部是竖直方向的LinearLayout,包含标题栏和...

2018-04-17 16:07:29 253

原创 Android面试-9 View事件体系

View的事件分发public static dispatchTouchEvent(MotionEvent e){ boolean consume = false; if(onInterceptTouchEvent(e)) { consume = onTouchEvent(e); } else { Consume = child.dispat...

2018-04-17 15:36:32 243

原创 Android面试-1 Activity生命周期和启动模式

生命周期分析典型情况ActivityA中打开ActivityB:ActivityA执行onPause,onSaveInstance,onStop,ActivityB执行onStart,onResume。注意ActivityB的onResume必须在ActivityA的onPause执行完后才会执行, ActivityA中打开ActivityB,ActivityB为透明主题,Activi...

2018-04-16 21:06:39 160

原创 HITS算法

本代码实现hits算法的迭代计算和归一化,仅供参考使用,若需一键下载请移步java实现的hits算法Main3.java:package hits;/** * Created by bingo on 16-11-15. */public class Main3 { public static final int VERTERSNUM=4; //设定输入几个节点,现在默认为...

2016-11-17 00:34:45 1486

原创 android之SurfaceView

SurfaceView是视图(View)的继承类,这个视图里内嵌了一个专门用于绘制的Surface。你可以控制这个Surface的格式和尺寸。Surfaceview控制这个Surface的绘制位置。 1,它的特性是:可以在主线程之外的线程中向屏幕绘图上。由于它拥有独立的绘图表面,因此SurfaceView的UI就可以在一个独立的线程中进行绘制。又由于不会占用主线程资源,SurfaceVie

2016-05-14 14:33:40 330

原创 Android异步任务机制之AsyncTask

Handler 的缺点:例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。Android1.5提供了工具类android.os.AsyncTask,它使创建异步任务变得更加简单,不再需要编写任务线程和Handler实例即可完成相同的任务。1. public abstract class AsyncTask {  三种泛型类型分别代表“启动任务执行的输入参数”、“后台任务执行

2016-05-13 23:48:26 311

原创 Android异步任务机制之Handler

Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制。Android的消息循环是针对线程的,每个线程都可以有自己的消息队列MessageQueue和消息循环Looper。一个Thead中可以建立多个Hander,通过msg.target保证MessageQueue中的每个msg交由发送message的handler进行处理 ,但是 每个线程中

2016-05-13 23:45:54 326

原创 I/O调优

磁盘I/O调优如何判断I/O是否成为一个瓶颈?(有些参数指标:比如IOPS,wait参数) 提升磁盘I/O的方法: (1)增加缓存,减少磁盘访问次数 (2)从底层操作系统考虑,优化磁盘管理(磁盘寻址策略) (3)应用层面考虑,设计合理的磁盘储存数据块 (4)利用RAID策略提升 网络I/O优化基本原则: (1)减少网络交互次数:在两端设置缓存,合并访问请求。 (2)减少网络传输数据量

2016-05-05 23:34:26 297

原创 Java Socket

Socket:基于TCP/IP的流套接字。 1,建立通信链路 (1))客户端创建Socket实例(包含本地地址,远程地址和端口号)(要经历TCP的三次握手后才算创建成功),创建失败抛出IOException (2))服务端创建一个ServerSocke实例(只要端口号未被占用则一般就成功,在创建同时操作系统会为其配一个底层数据结构来包含指定监听的端口号和包含监听地址的通配符“*”,表示监听所有

2016-05-05 23:31:59 350

原创 Java序列化技术

1,定义将一个对象转换成二进制表示的字节数组,可以通过保存或者转移这些二字节数据来达到持久化的目的。(注意序列化不一定保存类的完整结构信息)2,序列化要求对象必须实现java.io.Serializable接口 反序列化要求:必须有原始类作为模板3,序列化机制:(1)父类继承Serializable接口则所有子类都可以被序列化 (2)子类继承Serializable接口,父类没有,则父类中

2016-05-05 23:31:17 209

原创 JAVA I/O(1)

Java io分类:基于字节操作的I/O接口:InputStream和OutputStream; 基于字符操作的接口:Writer和Reader 基于磁盘操作的:File。 基于网络操作的:Socket (socket类并不在java..io下)读取和写入文件都要调用操作系统提供的接口才能完成,因为磁盘设备是操作系统内管理的。读写分别对应read(),write()两个系统调用,操作系统为了

2016-05-05 23:29:56 202

原创 深入理解HTTP(二)

HTTP头信息控制缓存浏览器请求流程Expires策略:Expires是Web服务器响应消息头字段,在响应http请求时告诉浏览器在过期时间前浏览器可以直接从浏览器缓存取数据,而无需再次请求。不过Expires 是HTTP 1.0的东西,现在默认浏览器均默认使用HTTP 1.1,所以它的作用基本忽略。Expires 的一个缺点就是,返回的到期时间是服务器端的时间,这样存在一个问题,如果客户端的时间与

2016-05-04 12:05:32 195

原创 深入理解HTTP(一)

B/S网络架构采用HTTP(无状态短连接)来交互数据(应用层),可以达到处理大量用户请求的要求http连接本质上是建立一个socket连接,通过outputstream.write发送到目标服务器,通过inputstream.read来接受返回数据。http header控制用户浏览器的渲染行为和服务器的执行该逻辑(如404状态码) 浏览器缓存机制:缓存分为服务端侧(server side,比

2016-05-04 11:52:14 189

原创 位运算及其应用

基本概念^: 按位异或;&:按位与; | :按位或计算机系统中,数值一律用补码来表示:因为补码可以使符号位和数值位统一处理,同时可以使减法按照加法来处理。对补码做简单介绍:数值编码分为原码,反码,补码,符号位均为0正1负。原码 -> 补码: 数值位取反加1补码 -> 原码: 对该补码的数值位继续 取反加1补码 的绝对值(称为真值):正数的真值就是本身,负数的真值是各位(包括符号位)取反加1(即变成原

2016-05-03 00:00:16 204

原创 序列化和反序列化

什么是序列化和反序列化序列化和反序列化几乎是工程师们每天都要面对的事情,但是要精确掌握这两个概念并不容易:一方面,它们往往作为框架的一部分出现而湮没在框架之中;另一方面,它们会以其他更容易理解的概念出现,例如加密、持久化序列化: 将数据结构或对象转换成二进制串的过程反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程对象的序列化主要有两种用途:   1) 把对象的字节序列永久

2016-05-02 23:24:14 174

原创 Android适配问题

操作系统适配适配Android 2.X,4.X,5.X……每个版本的操作系统,都有其特定的变化,对于App开发者而言,最重要的一点就是要明确每一个版本API Changed List。对变更列表中的新增API,可以选择性使用;对废弃API,可以及早应对;对变化的API,尤其是形式不变而含义变化的API,要重点研究,以免在不同版本中带来行为上的差异。比如权限分裂及默认值的变化,由串行到并发的变化,精确

2016-05-02 19:43:51 355

原创 Android之Context理解

Application的Context是一个全局静态变量,SDK的说明是只有当你引用这个context的生命周期超过了当前activity的生命周期,而和整个应用的生命周期挂钩时,才去使用这个application的context。一种推荐的用法就是应用程序注册广播broadcast时,使用这个context。引用application context并不会导致内存泄漏。引用act

2016-04-28 11:52:52 267

原创 Socket异常之Connection reset

“Connection reset”的原因是服务器关闭了Connection[调用了Socket.close()方法]。大家可能有疑问了:服务器关闭了Connection为什么会返回“RST”而不是返回“FIN”标志。原因在于Socket.close()方法的语义和TCP的“FIN”标志语义不一样:发送TCP的“FIN”标志表示我不再发送数据了,而Socket.close()表示我不在发送也不接受数

2016-04-21 23:20:09 2261

原创 Activity之封装intent

我们可以对intent进行简单封装来增强可读性,这样以后就直接一行代码实现activity之间的通信了 public static void actionStart(Context context, String data1, String data2) { Intent intent = new Intent(context, SecondActivity.class); intent.putExtra();

2016-04-21 19:01:47 325

原创 Activity之数据恢复

LoginActivity数据恢复当我们返回登录界面后,账号框可以显示出原来的登陆账号,这样可以用sharedpreferences实现,当然也有更简单一些的方法。 两步: (1)重写LoginActivity的onSaveInstanceState onSaveInstanceState(Bundle outstate){ Protect void onSaveInstanceState(

2016-04-21 18:58:21 324

原创 Activity通信之返回数据

返回数据给上一个Activity一,在A activity上使用startActivityForResult(intent)来启动B activity;二,在B中回传数据时采用setResult方法,并且之后要调用finish方法。 setResult(RESULT_OK, intent); //intent为A传来的带有Bundle的intent,当然也可以自己定义新的//Bundle、

2016-04-21 18:48:21 264

转载 Android存储登陆信息

用sharedPreferance去优化存储信息,用来存储用户对象

2016-04-12 14:48:46 639

JAVA编程思想笔记

边看java编程思想写的笔记,有点杂但还是有些值得看的东西

2017-06-19

java实现的hits算法

采用java语言对hits算法进行迭代计算和归一化处理.代码简单易用,扩展性较好.

2016-11-17

android聊天室

本android项目基于socket实现的一个简单的聊天室,便于初学者参考,功能比较简单,可扩展性较强

2016-05-13

第一个java web创建

创建第一个javaweb项目,适合刚刚开始学习javaweb的人

2015-12-04

坦克大战源码

主要是一个java写的坦克大战,里面包含了多线程,集合,枚举类等java知识

2015-10-05

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

TA关注的人

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