自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Joe James

show me the code

  • 博客(84)
  • 收藏
  • 关注

转载 Java多线程基础

前言多线程并发编程是Java编程中重要的一块内容,也是面试重点覆盖区域,所以学好多线程并发编程对我们来说极其重要,下面跟我一起开启本次的学习之旅吧。正文线程与进程1 线程:进程中负责程序执行的执行单元线程本身依靠程序进行运行线程是程序中的顺序控制流,只能使用分配给程序的资源和环境2 进程:执行中的程序一个进程至少包含一个线程3 单线程:程序中只存在一个线程,实际上主方法就是一个主线程4 多线程:在...

2018-04-04 16:15:41 199

转载 40个Java多线程问题总结

前言Java多线程分类中写了21篇多线程的文章,21篇文章的内容很多,个人认为,学习,内容越多、越杂的知识,越需要进行深刻的总结,这样才能记忆深刻,将知识变成自己的。这篇文章主要是对多线程的问题进行总结的,因此罗列了40个多线程的问题。这些多线程的问题,有些来源于各大网站、有些来源于自己的思考。可能有些问题网上有、可能有些问题对应的答案也有、也可能有些各位网友也都看过,但是本文写作的重心就是所有的...

2018-04-03 18:26:04 256

转载 契约式编程与防御式编程

背景事情的来由还要从几十几亿年前的一次星球大爆炸说起,sorry,背错台词了,是从几天前讨论接口返回数据和几个月前讨论课件本地数据结构说起,简单的说,就是碰到约定好的内容出现异常,是我们在程序中内部作兼容处理,还是抛出去。打个比方,我们要解析一段json,约定这个json的格式,只能是正常格式,或者是空,那么一旦返回json的方法返回了一个『既不是正常格式,又不是空的异常值』,程序该如何处理呢?小...

2018-04-03 12:57:44 861

转载 调试Bluetooth时的一些札记

LCL层是BT的链路控制功能的一部分,它从软件或被命令配置或控制的其他控制器上取命令,然后执行链路控制任务。蓝牙技术的系统结构分为三大部分:底层硬件模块、中间协议层和高层应用。底层硬件部分包括无线跳频(RF)、基带(BB)和链路管理(LM)。无线跳频层通过2.4GHz无需授权的ISM频段的微波,实现数据位流的过滤和传输,本层协议主要定义了蓝牙收发器在此频带正常工作所需要满足的条件。基带负责跳频以及...

2018-03-29 17:58:47 817

转载 Android4.1.1系统编译全过程

一、编译环境:首先介绍编译中使用的工具:虚拟机:VMware 9 下载地址:http://www.linuxidc.com/Linux/2012-09/69493.htmlinux平台:Ubuntu 12.04 64位jdk:              sun-java6-jdk (64位)交叉编译工具链:gcc 使用的版本是:4.6.3想要完成最终的编译,当然首要的就是检查环境:1、安装的ubu...

2018-03-29 17:21:48 318

转载 android使用隐藏api的方法(使用被@hide的api)

前言:一开始需要说明的是,Google之所以要将一些API隐藏(指加上@hide标记的public类、方法或常量)是有原因的。其中很大的原因就是Android系统本身还在不断的进化发展中。从1.0、1.1到现在即将问世的Android 2.3.4。 这些隐藏的API本身可能是不稳定的,所以,使用隐藏API,意味着程序更差的兼容性。    如果要我给出建议的话,最好还是不要使用隐藏的API。不过有时...

2018-03-29 17:19:33 1573

转载 Android冷启动实现APP秒开

在阅读这篇文章之前,首先需要理解几个东西:1、什么是Android的冷启动时间?冷启动时间是指用户从手机桌面点击APP的那一刻起到启动页面的Activity调用onCreate()方法之间的这个时间段。2、在冷启动的时间段内发生了什么?首先我们要知道当打开一个Activity的时候发生了什么,在一个Activity打开时,如果该Activity所属的Application还没有启动,那么系统会为这...

2018-03-27 10:44:38 290

转载 初始化顺序总结 - 静态变量、静态代码块、成员变量、构造函数

概念   类变量 (静态变量)    1. 可以向前引用    2. 变量属于类本身    3. 类变量不依赖类的实例,类变量只在初始化时候在栈内存中被分配一次空间,无论类的实例被创建几次,都不再为类变量分配空间    4. 通过类的任意一个实例来访问类变量,底层都将将其转为通过类本身来访问类变量,它们的效果是一样的    5. 一旦类变量的值被改变,通过类或类的任意一个实例来访问类变量,得到的都...

2018-03-26 18:14:06 306

转载 Java中的String,StringBuilder,StringBuffer三者的区别

最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下,便于大家观看,也便于加深自己学习过程中对这些知识点的记忆,如果哪里有误,恳请指正。  这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。首先说运行速度,或者说是执行速度,在这方面运行速...

2018-03-26 17:45:27 130

转载 surfaceView和View的区别

概念:view在UI线程去更新自己;而SurfaceView则在一个子线程中去更新自己  surfaceView是在一个新起的单独线程中可以重新绘制画面,而View必须在UI的主线程中更新画面  在UI的主线程中更新动画,时间一旦太长就会出现问题  surfaceView 在新的线程中更新画面所以不会阻塞你的UI主线程,但是涉及到线程同步,需要surfaceView中 thread处理,一般就需要...

2018-03-26 17:06:46 200

转载 带你彻底理解 Window 和 WindowManager

有时候我们需要在桌面上显示一个类似悬浮窗的东西,这种效果就需要用 Window 来实现,Window 是一个抽象类,表示一个窗口,它的具体实现类是 PhoneWindow,实现位于 WindowManagerService 中。相信看到 WindowManagerService 你会有点眼熟,刚接触 Android 时几乎所有人都看到过这样一张图:WindowManagerServiceWindo...

2018-03-26 16:55:33 12851 9

转载 Android 动画总结

在日常的Android开发中,经常会使用到动画,这里就对Android开发中的动画做一下总结。Android 动画分类##总的来说,Android动画可以分为两类,最初的传统动画和Android3.0 之后出现的属性动画;传统动画又包括 帧动画(Frame Animation)和补间动画(Tweened Animation)。传统动画##帧动画##帧动画是最容易实现的一种动画,这种动画更多的依赖于...

2018-03-26 13:12:08 161

转载 Android中的绘制机制

我们知道,其实Android系统的绘制几乎都是在底层完成(调用Native的方法,可参考Canvas类),这里,我主要是想讲一讲我对于Android在framework这一层的绘制机制。不会涉及到太多底层的东西,这一块目前我也没做过多深入的研究。一,View如何绘制View#draw方法,提供了一个最基本的绘制机制,子类通常不需要重写这个方法。我们可以通过查看其源码,在View的draw里面,它通...

2018-03-25 23:54:51 164

原创 常用linux命令

1、命令基本格式ls2、文件处理命令目录处理命令 mkdir -p cd pwd rmdir文件处理命令 cp mv链接命令 ln3、文件搜索命令locatewhereiswhichfind . -size 25kfind /root -size 25Mfind /root -inum 262421find /etc -size +20k -a -size -50k  在etc目录下找文件大小在2...

2018-03-25 17:48:53 135

转载 源码角度讲解子线程创建Handler报错的原因

1. 前言众所周知,在android中,非UI线程中是不能更新UI的,如果在子线程中做UI相关操作,可能会出现程序崩溃。一般的做法是,创建一个Message对象,Handler发送该message,然后在Handler的handleMessage()方法中做ui相关操作,这样就成功实现了子线程切换到主线程。 其实handler主要有两个功能: 1.刷新UI,(需要用主线程的looper) 2.不用...

2018-03-24 17:11:20 415

转载 自定义View——坑、技巧、调优

相信有创建过“自定义View”经验的众多的开发者朋友当中有相当一部分人猿友是直接copy网上的一些代码拿来用,结果往往不尽如人意,碰到bug或者是需求发生变化时往往手忙脚乱,android自定义View你真的知道么???本文主要是整理介绍一下“自定义View"的 一些容易踩坑的地方和一些优化,其中包括自定义属性、手势交互以及优化自定View的具体点,这边可能需要读者们对"如何创建一个自定义View...

2018-03-24 16:53:54 548

转载 ScrollView中嵌套ListView与GridView时滑动冲突解决方案

在自定义View和ViewGroup的时候,我们经常会遇到int型的MeasureSpec来表示一个组件的大小,这个变量里面不仅有组件的尺寸大小,还有大小的模式。这个大小的模式,有点难以理解。在系统中组件的大小模式有三种:1.精确模式(MeasureSpec.EXACTLY)在这种模式下,尺寸的值是多少,那么这个组件的长或宽就是多少。2.最大模式(MeasureSpec.AT_MOST)这个也就是...

2018-03-24 16:42:14 352

转载 非UI线程可以更新UI吗?

尊重原创转载请注明:From AigeStudio(http://blog.csdn.net/aigestudio)Power by Aige 侵权必究!炮兵镇楼看到这样的标题……估计N多人会说我是逗比…………因为很多盆友在学习Android(特别是从4.0之后开始入门的)的时候都会常看见或听到别人说我们更新UI呢要在UI线程(或者说主线程)中去更新UI,不要在子线程中更新UI,而Android官...

2018-03-24 16:29:12 613

转载 怎么在Service中创建Dialog对话框

一般我们都是在Activity中创建dialog的,无论是系统的AlertDialog还是我们自定义的Dialog。 我们只需设置title,message等信息,然后show出来即可。可是在服务中呢,没有activity,dialog没有了依赖,那么怎么办呢? 这时,dialog就要以系统对话框的形式弹出了。在我们取得Dialog对象后,需给它设置类型,即:dialog.getWindow()....

2018-03-24 16:00:07 732

转载 Android任务栈的四种模式和应用场景

通过Acitivty的xml标签来改变任务栈的默认行为在清单文件中使用android:launchMode="standard|singleInstance|singleTask|singleTop"来控制Acivity任务栈。任务栈是一种后进先出的结构。位于栈顶的Activity处于焦点状态,当按下back按钮的时候,栈内的Activity会一个一个的出栈,并且调用其onDestory()方法。...

2018-03-24 15:54:14 322

转载 Android5.0,6.0,7.0新特性整理

背景Android5.0(Android Lollipop)是谷歌公司2014年10月发布的全新安卓系统,至今已经3年多。然而由于国产手机对安卓ROM的深度定制或修改,以及手机厂商、芯片制造商、运营商之间错综复杂的关系,我们更新最新安卓版本往往需要1年左右时间的等待。2015年5月发布了Android6.0(Android Marshmallow),2016年8月发布了Android7.0(And...

2018-03-23 17:15:56 525

转载 WebView 使用漏洞

目录1. 类型WebView中,主要漏洞有三类:任意代码执行漏洞密码明文存储漏洞域控制不严格漏洞2. 具体分析2.1 WebView 任意代码执行漏洞出现该漏洞的原因有三个:WebView 中 addJavascriptInterface() 接口WebView 内置导出的 searchBoxJavaBridge_对象WebView 内置导出的 accessibility 和 accessibil...

2018-03-23 16:56:45 166

转载 WebView与 JS 交互方式

前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图上述功能是由Android的WebView实现的,其中涉及到Android客户端与Web网页交互的实现今天我将全面介绍Android通过WebView与JS交互的全面方式阅读本文前请先阅读:Android开发:最全面、最易懂的Webview详解目录1. 交互方式总结Android与JS...

2018-03-23 15:24:48 212

转载 Webview 详解

前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,如下图 那么这种该如何实现呢?其实这是Android里一个叫WebView的组件实现的。今天我将全面介绍WebView的常用用法。目录1. 简介WebView是一个基于webkit引擎、展现web页面的控件。Android的Webview在低版本和高版本采用了不同的webkit版本内核,4....

2018-03-23 14:53:46 126

转载 Android中广播的基本使用

接受系统广播动态注册在Java代码中指定IntentFilter,然后想监听什么广播就添加对应的Action。动态注册的广播,一定要调用unregisterReceiver()方法取消注册。下面用动态注册监听网络变化在AndroidManifest.xml中添加权限:<uses-permission android:name="android.permission.ACCESS_NETWOR...

2018-03-23 12:36:53 199

转载 横竖屏切换时Activity的生命周期变化?

1、新建一个Activity,并把各个生命周期打印出来2、运行Activity,得到如下信息onCreate-->onStart-->onResume-->3、按crtl+f12切换成横屏时onSaveInstanceState-->onPause-->onStop-->onDestroy-->onCreate-->onStart-->onRe...

2018-03-23 09:53:14 267

转载 android跨进程通信方式有哪些?

定义多进程Android应用中使用多进程只有一个办法(用NDK的fork来做除外),就是在AndroidManifest.xml中声明组件时,用android:process属性来指定。不知定process属性,则默认运行在主进程中,主进程名字为包名。android:process = package:remote,将运行在package:remote进程中,属于全局进程,其他具有相同shareU...

2018-03-22 18:19:09 2936

转载 Android开发之如何保证Service不被杀掉

序言最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill,这可真是一个难题。参考了现今各种定制版的系统和安全厂商牛虻软件,如何能保证自己的Service不被杀死呢?其实除了常规的手段,我们可以参考一下微信和360,设置-程序-正在运行,可以看到微信是同时开启了两个进程和服务:【有兴趣可以研究一下 守护进程 和 AID...

2018-03-22 17:34:46 172

转载 Fragment使用注意事项

Fragment全解析系列(一):那些年踩过的坑 https://www.jianshu.com/p/d9143a92ad94Fragment全解析系列(二):正确的使用姿势 https://www.jianshu.com/p/fd71d65f0ec6Fragment之我的解决方案:Fragmentation  https://www.jianshu.com/p/38f7994faa6b-----...

2018-03-22 16:17:26 178

原创 框架源码解读列表

框架名字功能介绍github地址okhttp网络请求https://github.com/square/okhttpretrofit封装okhttphttps://github.com/square/retrofitglide图片显示https://github.com/bumptech/glideleakcanary内存泄漏检测https://github.com/square/leakcana...

2018-03-22 09:19:04 362

转载 什么是IntentService?

Google 为方便开发者使用,提高开发效率,封装了 IntentService 和 HandlerThread。HandlerThread 继承自 Thread,内部封装了 Looper。那 IntentService 呢? IntentService 是继承自 Service 并处理异步请求的一个类,在 IntentService 内有一个工作线程来处理耗时操作,当任务执行完后,IntentS...

2018-03-22 09:16:12 174

转载 service和thread的区别?

servie是系统的组件,它由系统进程托管(servicemanager);它们之间的通信类似于client和server,是一种轻量级的ipc通信,这种通信的载体是binder,它是在linux层交换信息的一种ipc。而thread是由本应用程序托管。1). Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作。2). Servi...

2018-03-21 18:50:50 493

原创 android app内存泄漏(代码检视)

  1、集合类泄漏集合类如果仅仅有添加元素的方法,而没有相应的删除机制,导致内存被占用。如果这个集合类是全局性的变量 (比如类中的静态属性,全局性的 map 等即有静态引用或 final 一直指向它),那么没有相应的删除机制,很可能导致集合所占用的内存只增不减。比如我们都喜欢通过 HashMap 做一些缓存之类的事,这种情况就要多留一些心眼。   2、单例造成的内存泄漏由于单例的静态特性使得其生命...

2018-03-21 14:58:24 189

原创 retrofit源码解读

1、流程分析2、概述3、用法4、retrofit主要使用jdk动态代理,什么是动态代理?5、通信流程      

2018-03-13 18:07:12 116

原创 okhttp源码解读

1、框架流程2、同步请求使用示例发送请求后,就会进入阻塞状态,直到收到相应3、异步请求使用示例onFailure和onResponse都是在子线程里执行4、同步异步请求流程5、okhttp拦截器流程...

2018-02-27 18:26:18 151

原创 算法基础问题列表

1、深度优先遍历和广度优先遍历的区别?2、手写一个二叉搜索树?3、手写一个堆排序?4、手写一个快速排序?5、手写一个归并排序?6、手写一个选择排序?7、手写一个插入排序?8、手写一个冒泡排序?9、各个排序的时间复杂度和空间复杂度以及稳定性?

2017-02-20 16:27:18 434

原创 网络问题列表

1、http/https有什么区别?2、tcp的三次握手和四次挥手?3、tcp和udp的区别?4、user-agent的作用?5、android的基础网络编程:socket、HttpClient和HttpURLConnection?        Socket是什么?        Socket通信模型?        Socket与Http对比?        Socket如何实现?6、了解we...

2017-02-20 16:24:25 405

原创 设计模式问题列表

1、23种设计模式分别是什么?2、MVC模式?3、MVP和MVVM模式?

2017-02-20 16:21:55 775

原创 线程间通信-多生产者多消费者(Lock版本)

import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;class ProducerConsumerDemo2{ public static void main(String[]

2016-07-14 21:38:06 412

原创 线程间通信-多生产者多消费者

class ProducerConsumerDemo { public static void main(String[] args){ Resource resource = new Resource(); //多个生产者,多个消费者 new Thread(new Producer(resource)).start(); n

2016-07-14 20:49:41 438

空空如也

空空如也

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

TA关注的人

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