自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (5)
  • 收藏
  • 关注

原创 ndk报错记录

CMake was unable to find a build program corresponding to “Ninja”. CMAKE_MAK解决办法:可能是由于android studio版本高,与gradle版本低导致不匹配,升级gradle版本就行已经配置 abiFilters ‘armeabi-v7a’ 打出的apk运行后说找不到对应的so文件,导致崩溃extern...

2020-04-15 12:13:07 341

转载 okHttp重试机制

RetryAndFollowUpInterceptor,重试流程比较清晰,简略写了下注释,涉及到的类主要就是StreamAllocation,这个类用来管理链接connection、请求及编解码类HttpCodec、路由RouteSelector,真正的使用时在后面的连接和请求过程中,这里主要是实例化和释放@Override public Response intercept(Chain cha...

2020-02-15 14:15:32 3016 1

原创 View测量过程关键点记录

1. 最开始的MeasureSpec是从哪里设置的?在ViewRootImpl中函数measureHierarchy中进行的设置调用2.叶子节点view的MeasureSpec在哪里设置的?每一个子view都是通过父viewGroup在onMeasure函数中进行的设置并测量,使用的方法为measureChildWithMarginsprotected void measureChild...

2019-12-23 15:17:12 170

转载 Android RecyclerView Glide 滑动时图片加载的优化

RecyclerView 滑动时的优化处理在滑动时停止加载图片,在滑动停止时开始加载图片,这里用了Glide.pause 和Glide.resume.这里为了避免重复设置增加开销,设置了一个标志变量来做判断。mRecyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {@Overridepublic void ...

2019-07-17 14:36:08 2756

原创 Fragment的onCreateView创建的view是如何加入到Activity的

**Fragment的onCreateView创建的view是如果加入到Activity的过程分析**1.简单介绍一下fragment的使用在activity的布局里添加一个ViewGroup并设置一个id,使用的时候通过这个id添加一个fragment。这个过程相信大家都非常的清楚所以很简单的说明一下。2.开始正式说明这个添加过程1,在FragmentActivity里有一个变量mF...

2019-06-27 11:55:36 3058

转载 Android7.0、8.0应用内安装apk的问题

文章转载于这里写链接内容Android开发避免不了应用内发起安装应用,随着Android版本的升级,权限越来越收紧,安装姿势变了又变。接下来我来告诉大家针对不同Android版本正确发起应用内安装。首先将现有的Android版本进行分一下界限,Android 1.x~6.x 和Android 7.x 及Android 8.x。可以看下图,如果看不懂,接下来我会详细解说,如果你领悟了就不用往...

2018-09-06 11:15:11 942 1

转载 Android源代码 目录结构分析

Google提供的Android包含了原始android的目标机代码,主机编译工具、仿真环境,下载的代码包经过解压后(这里是Android2.2的源码包),源代码的第一层目录结构如下: |– Makefile |– bionic (bionic C库) |– bootable (启动引导相关代码) |– build

2017-08-17 23:28:05 754

转载 23种设计模式的通俗理解

转载地址需要详细说明请看此文章1、FACTORY追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如

2017-08-06 11:39:03 329

转载 android:descendantFocusability用法简析

开发中很常见的一个问题,项目中的listview不仅仅是简单的文字,常常需要自己 定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现了,可能会发生点击每一个 item的时候没有反应,无法获取的焦点。原因多半是由于在你自己定义的Item中存在诸如ImageButton,Button,CheckBox等子 控件(也可以说是Button或

2017-08-06 11:25:56 397

原创 cocoapods 找不到头文件

问题描述:使用cocoapods时,import 找不到头文件。问题原因:这是因为还没设置头文件的目录。解决办法:在项目的Target的里设置一下,添加cocoapods头文件目录:目录路径直接写:${SRCROOT}   ,后边选择recursive 。就可以了。注意:是在 User Header Search Paths 里添加,不是上面的 Header Search Paths. 如图:

2017-08-06 11:24:11 433

转载 Android studio gradle中分渠道加载res、libraries及Class

转载:Android studio gradle中分渠道加载res、libraries及Class前段时间遇到这样的需求,在App里使用了地图功能,对应海外版使用Android内置google的地图服务。而对于国内版(大家都知道的),我们使用了高德地图。而在导入高德地图的时候需要加入对应的sdk及.so文件,这样最后打包的大小会增加2M左右。但海外版并不需要这部分资源,故需要根据不同的渠道加载不同的

2017-06-21 15:46:21 780

原创 ListView 复用学习

listview复用学习

2017-06-07 15:54:42 241

原创 jvm垃圾收集算法

jvm垃圾收集算法

2017-06-06 10:20:09 158

原创 java 笔记

RTTI : RTTI(Run-Time Type Information),通过运行时类型信息程序能够使用基类的指针或引用来检查这些指针或引用所指的对象的实际派生类型。java 使用CLass对象来执行RTTI,即使正在使用转型的操作. 所有的类都是在第一次对其使用时,动态加载到jvm中,当创建第一个对类的静态成员引用时,类被加载. 这个证明构造器也是静态方法,只是没有static关键字.因此

2017-05-23 13:51:41 318

原创 java 内存学习 二 (内存溢出情况说明)

Java堆溢出Java堆用于存储对象实例,只要不断地创建对象,并且保证GC Roots到对象之间有可达 路径来避免垃圾回收机制清除这些对象,那么在对象数量到达最大堆的容量限制后就会产生 内存溢出异常。示例代码 :/***VM Args:-Xms20m-Xmx20m-XX:+HeapDumpOnOutOfMemoryError*@author zzm*/public class HeapO

2017-05-22 15:11:02 248

原创 java 内存学习笔记 一(内存划分与功能说明)

根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域: 程序计数器:程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线 程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能 会通过一些更高效的方式去实现),字节码解释器工作时就是通过改变这个计数器的值来选

2017-05-22 11:58:18 323

原创 ProGuard 配置使用笔记

1.基本指令代码混淆压缩比,在0~7之间,默认为5,一般不需要改-optimizationpasses 5混淆时不使用大小写混合,混淆后的类名为小写-dontusemixedcaseclassnames指定不去忽略非公共的库的类-dontskipnonpubliclibraryclasses指定不去忽略非公共的库的类的成员-dontskipnonpubliclibraryclassmembers不做

2017-05-22 11:04:35 408

原创 java动态代理的实现及原理, 混型应用

在java的动态代理机制中,有两个重要的类或接口,一个是 InvocationHandler(Interface)、另一个则是 Proxy(Class),这一个类和接口是实现我们动态代理所必须用到的。示例:public class DynamicProxyTest { interface UserService { public abstract void add();

2017-05-15 15:25:48 309

原创 Fragment中,RecyclerView遇到notifyDataSetChanged无效情况说明

如果数据是这样进行的初始化操作@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { View rootView = inflater.infla

2017-05-04 10:40:25 3227 1

原创 viewpage里fragment懒加载与缓存已经创建的fragment

新闻类应该最常见的就是viewpage,Fragment 直接给出解决方案,如有更好请告知!

2017-05-03 16:44:20 469

转载 Java泛型遇到多态与Java泛型边界

说明: 今天,继续学姐java编程思想-泛型这一章的时候,对于通配符的理解不够明白,于是又网上查了些资料,发现一篇写的很好的文章,在此记录学习一下

2017-04-20 15:49:42 1662

转载 Java的泛型及实现

原文出处:聊聊Java的泛型及实现摘要 和C++以模板来实现静多态不同,Java基于运行时支持选择了泛型,两者的实现原理大相庭径。C++可以支持基本类型作为模板参数,Java却只能接受类作为泛型参数;Java可以在泛型类的方法中取得自己泛型参数的Class类型,C++只能由编译器推断在不为人知的地方生成新的类,对于特定的模板参数你只能使用特化。在本文中我主要想聊聊泛型的实现原理和一些高级特性。泛型

2017-04-06 11:50:25 286

转载 Android架构思考(模块化、多进程)(转载学习)

关于模块化(组件化)这个问题,我想每个开发者可能都认真的思考过。随着项目的开发,业务不断壮大,业务模块越来越多,各个模块间相互引用,耦合越来越严重,同时有些项目(比如我们公司)还伴随着子应用单独包装推广,影子应用单独发布等等需求,重新调整架构迫在眉睫。今天,我们就来聊聊模块化(组件化),这篇文章同时也是我这几年,对项目架构的理解。最初的超小型项目当

2017-03-03 15:03:37 650

转载 Android中自定义样式与View的构造函数中的第三个参数defStyle的意义

序 系统自带的View可以在xml中配置属性,对于写的好的Custom View同样可以在xml中配置属性,为了使自定义的View的属性可以在xml中配置,需要以下4个步骤:通过为自定义View添加属性在xml中为相应的属性声明属性值在运行时(一般为构造函数)获取属性值将获取到的属性值应用到View怎么将获取到的属性值应用到View就不用说了,自己定义的属性什么用处自己肯定是清楚的,所以接

2017-02-18 00:11:11 337

原创 进入Activity、动画卡顿问题的解决方案

有时我们使用activity转场动画的时候,没有再demo流畅,原因可能是因为动画进行时,有同时加载数据等进行主线程操作,所以会导致动画不够流畅. 解决办法就是在动画结束后再进行数据加载等相关操作. activity里有一个方法/** * Activities cannot draw during the period that their windows are animating in.

2017-02-10 11:01:01 2465 1

原创 自定义ViewGroup 支持Margin

一般自定义VIewGroup步骤: 1.继承ViewGroup 2.重写onMeasure 3.重写onLayout 4.重写onDraw此时,MarginLayoutParams cParams = (MarginLayoutParams) view1.getLayoutParams();会报异常 异常内容为:java.lang.ClassCastException: android.v

2017-01-11 17:09:44 461

原创 Android上面通过URL来启动本地应用

Android支持通过Url打开App,比如下面的Urlscheme://text/datastring要打开这样的Url,首先在配置文件AndroidManifest.xml里使用添加一种App打开的格式,代码如下<?xml version="1.0″ encoding="utf-8″?><manifest xmlns:android="http://schemas.android.com/ap

2016-12-28 10:23:42 909

转载 布局优化技巧

今天分享一些layout布局书写中的一些技巧,希望看过之后你也一样可以写出性价比高的布局。我个人的目标是用最少的View写出一样效果的布局。因为我相信View的数量减少伴随着的就是层级的减少。从而达到结构清晰,渲染速度快的效果。顺着这个逻辑,我将优化分为重用、合并、按需载入。重用* < include/>*< include>标签可以在一个布局中引入另外一个布局,这个的好处显而易见。类似于我们经常

2016-12-13 13:27:08 422

原创 ScrollView 嵌套RelativeLayout使用示例

<ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:fillViewport="true" android:overScrollMode="always" android:scrollba

2016-12-05 22:24:40 2127 1

转载 Activity 全屏,沉浸式模式(转)

第一次在项目中要用到全屏功能的时候无从下手,然后就是去百度了。百度到的结果都是差不多的。不过直接把代码贴过来的确是可以用的。但是除了知道怎么做之外还想去理解它,因为只有理解了才能举一反三嘛。好在在后来的时候看到了官方的文档,写的非常详细。官方文档接下来开始正题… … …先给出一些名词方便下面的讲解StatusBar NavigationBar SystemBar – StatusBar

2016-11-14 17:12:43 675

转载 LinearLayout的layout_weight属性

定义    首先,看看Android官方文档是怎么说的,毕竟人家才是权威嘛。             官方文档的意思是:                 layout_weight属性用于分配LinearLayout中的的额外空间(extra space)。                 如果View不想拉伸的话,layout_weight值设置为

2016-10-31 16:35:01 597

原创 Android 画虚线的问题

在一列清单下面要画一条虚线,与最下方确定按钮分隔开。我于是使用了shape,这本来是个很容易的事情,可弄了半天,一直是一条直线。先上代码看看吧。<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="line"

2016-10-26 17:59:09 281

原创 Fresco 的几个注意的点

Fresco 的使用方式官网给出了详细的说明,基本使用也比较简单. 这里只是记录一些遇到的一些情况:SimpleDraweeView直接设置图片,官网给出的是:Uri uri = Uri.parse("https://raw.githubusercontent.com/facebook/fresco/gh-pages/static/logo.png");SimpleDraweeView dr

2016-10-19 14:13:53 1364

原创 PreferenceFragment

PreferenceFragment 使用的时候,有时候会想让其占满屏幕,但是本身有没有什么好的设置方法,通过网上查询得到的2个解决方案:方法一,在Fragment中的onCreateView的时候,用我们自己的的Layout文件替代系统的Layout文件。只是注意文件的Id和布局要和系统的一样。 只不过把文件中设置ListView的Padding的地方改掉就可以了。 @Override

2016-10-14 11:43:22 597

转载 Android Gradle 学习使用

第一部分   —  Android Gradle语法目前,大多数讲解 Gradle的文章都是先从复杂的 Gradle语法开始. 而实际上, 对于 Android人员, 掌握这些语法细节并没有卵用, 我们仅需要能看懂, 随用随查即可.那本文也是遵照 ‘实用’这个原则介绍 Android Gradle.相信, 读过本文, 你至少应该不在畏惧 Buil

2016-10-12 15:56:30 423

原创 自定义switch,CircularProgressView,check,segment

最近学习自定义控件,如何制作的好一些,网上找了一点简单的资料,整理修改后放到了一起,与大家一起学习。先看看效果 说明一下控件功能: 1.开关按钮可以定义圆形还是方形,可以定义开启颜色跟关闭颜色 2.进度条可以定义单色或者多个颜色,圆圈的大小 3.check按钮可以定义圆形还是方形,选中颜色跟未选颜色 4.segment也是圆角边还是房角边,也可以去掉边框,颜色得都可以定义这里把代码贡献出来

2016-04-05 20:45:41 398

转载 pendingIntent 与 Intent

pendingIntent字面意义:等待的,未决定的Intent。要得到一个pendingIntent对象,使用方法类的静态方法 getActivity(Context, int, Intent, int),getBroadcast(Context, int, Intent, int),getService(Context, int, Intent, int)  分别对应着Inte

2016-03-22 16:38:27 256

转载 Java并发编程:Callable、Future和FutureTask

在前面的文章中我们讲述了创建线程的2种方式,一种是直接继承Thread,另外一种就是实现Runnable接口。  这2种方式都有一个缺陷就是:在执行完任务之后无法获取执行结果。  如果需要获取执行结果,就必须通过共享变量或者使用线程通信的方式来达到效果,这样使用起来就比较麻烦。  而自从Java 1.5开始,就提供了Callable和Future,通过它们可以在任务执行完毕

2016-03-21 20:14:06 275

原创 Android HandlerThread 复习

知道Handler的人肯定知道如何从一个子线程把消息传到主线程上。 例如:在下载图片,下载好了肯定要加载到imageview上,用handler就很方便。 那要是主现在如何往子线程发送信息呢? 如果属性handler机制的人肯定就知道怎么做,在子线程是做looper。跟主线程一样,下面给一个例子class MyThread extends Thread { {

2016-03-15 11:06:42 214

原创 Android Service 复习总结 下

上一篇总结了Service常用的一些方法,不过还有一个用法就是AIDL。那什么是AIDL呢,给一个定义吧。AIDL:aidl是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口(偷懒网上抄别人的,哈哈)不多说了,直接看看怎么用吧

2016-03-06 23:24:52 288

自定义小控件,button,圆形进度条等

自定义button,switch,圆形进度条,segment等。资源来源于网上,整理修改后得到

2016-04-05

maven spring mvc搭建例子

使用maven spring mvc搭建例子,供大家参考学习

2015-05-22

popwindow DEMO

popwindow可以在你指定的地方弹出一个框来显示你想要的内容,貌似系统的spinner也是用的popwind来实现的(其中的一种方式),所以 想自定义一个控制更容易的下拉框用popwindow比较简单好实现

2015-05-22

一个java正则表达式工具类.txt

一个java正规表达式工具类 关键字: 一个java正规表达式工具类 猛然想起两年写了一个java的正规表达式的java工具类,分享一下,有用到的欢迎下载使用。 如果你有常用的定义好的,且测试通过的正规表达式,欢迎跟贴,也让我享用一下 . 类中用到了 jakarta-oro-2.0.jar 包,请大家自己在 apache网站下下载 在这是junit测试单元类我就不提交了,在main()方法中有几个小测试,有兴趣自己玩吧.

2013-04-14

GB机房建设标准

GB机房建设标准。每一个搞系统集成度人都必须知道的书!

2011-11-16

空空如也

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

TA关注的人

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