自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HelloCSDN

Hello CSDN !

2015-12-21 14:58:40 465

原创 Android ListView ClassCastException

前言8012年了,在Android开发中,还是避免不了使用 ListView,通过 addFooterView 去添加底部视图,UI刷新时,又通过 removeFooterView 去移除旧的视图,在Android 4.3版本及以下 removeFooterView 时,发生闪退,日志如下:com.company.adapters.MyAdapter cannot be cast to...

2018-08-17 19:32:22 430

原创 Android PathClassLoader 和 DexClassLoader 区别之源码分析

前言一般说起 PathClassLoader 和 DexClassLoader ,大家都会说,前者只能加载内存中已经安装的apk中的dex,而后者可以加载sd卡中的apk/jar ,因此 DexClassLoader 是热修复和插件化的基础。但是具体为什么DexClassLoader能加载sd卡中的类,很多文章都只是一笔带过 ,于是研究了下源码,做个记录。【注意】本文所参考的源码基于And...

2018-08-14 16:22:29 5116 5

原创 React-Native 使用 ScrollView 简单实现 Banner 功能

前言遇到一个需求,需要做到一个2行列表的滑动,并且要求有底部的指示器,实际就是一个 banner ,由于原本代码是每行4个,分成2行,无法滚动,现在要在原有基础上改造成一行5个可滚动,故而没有大动代码,只是在外层嵌套 ScrollView ,利用滚动的属性模拟出了 banner 的效果:实现初始偏移量方案的主要思路在于 ScrollView 的滚动监听,每次滚动开始之前...

2018-08-09 18:27:52 1436

原创 Kotlin空安全最佳实践

Kotlin 空安全最佳实践前言Kotlin 语言在设计时,重点关注了Java 的空指针异常(NullPointerException,简称NPE),然而在使用时,由于NPE出现的原因及其多样化,对应的处理方式也有很多种,很多时候单靠一个variable != null不能优雅地解决所有问题,在不同场合,我们可以通过不同的方式,来简化书写,明确语义。Kotlin 产生 NPE ...

2018-07-05 11:30:57 994

原创 WebView 使用Android 原生ToolBar

WebView 使用Android 原生ToolBar前言在使用 WebView 加载 H5 页面的时候,很多H5页面会有自己的标题栏,然而原生APP中也会有自己的标题栏。很多应用为保证标题栏风格与原生应用统一,或者保证返回键的使用能自由控制,选择使用原生的 ToolBar 来作为页面的标题栏。使用原生标题栏要解决的问题为避免出现两个标题栏,需要隐藏H5自带的标题栏;原...

2018-06-06 17:39:25 1492

原创 Java 中的栈-Stack类源码解读

Stack继承自Vector,实现了栈元素的基本操作,最典型的就是push压栈和pop出栈,整个Stack.java的代码很简单:public class Stack<E> extends Vector<E> { public Stack() { } /** * 压入一个元素入栈,实际就是调用Vector的addElement方法...

2018-04-09 02:22:34 1665

原创 Activity启动

根Activity启动App安装时,PMS会解析AndroidManifest.xml,拿到组件信息。Launcher从PMS中拿到action为android.intent.action.MAIN并且category为android.intent.category.LAUNCHER的Activity信息并为他们创建桌面图标。<activity android:name=".Main...

2018-03-26 23:59:47 173

原创 从源码追踪OkHttp的请求流程

从实际使用开始OKHttp请求分为同步和异步,同步写法和异步写法分别如下:OkHttpClient client = new OkHttpClient();Request request = new Request.Builder().url("http://www.baidu.com").build();Call call =client.newCall(request);//...

2018-03-15 15:56:20 199

原创 Java对象实例化过程

Java对象初始化过程 参考自 http://blog.csdn.net/wang_1997/article/details/52266954先声明对象:class Student { String name = "Alice";//显示初始化 int age = 18; //显示初始化 public Student() { name...

2018-03-13 11:25:39 2671

原创 AIDL学习笔记

简介最近重温了下开发艺术探索里面的IPC机制,对于AIDL做下笔记使用时,客户端定义AIDL接口方法package com.lpc.aidltest;// Declare any non-default types here with import statementsimport com.lpc.aidltest.Book;interface IBookInterface ...

2018-03-13 00:26:03 221

原创 Bitmap和OOM笔记

Bitmap获取宽高Bitmap获取宽高有2种方式,第一种是直接将Bitmap加载进内存中,然后通过测量拿到宽高。private void getBitmapWH() { Bitmap bitmap = BitmapFactory.decodeFile("file/img.jpg"); int width = bitmap.getWidth(); int heigh...

2018-03-08 23:05:54 220

原创 Activity启动模式

Activity的启动模式Activity有4中启动模式,standard、singleTop、singleTask、singleInstance,可以通过AndroidManifest里面activity标签下的launchMode来设置,或者在代码中通过Intent的Flag参数来设置。standardstandard是默认的启动方式,每次启动Activity都会创建一个新的实例。...

2018-03-08 20:52:55 184

原创 Java基础(二)

Java基础(二)1、哪些情况下的对象会被垃圾回收机制处理掉?讲一下常见编码方式?utf-8编码中的中文占几个字节;int型几个字节?静态代理和动态代理的区别,什么场景使用?Java的异常体系谈谈你对解析与分派的认识。修改对象A的equals方法的签名,那么使用HashMap存放这个对象实例的时候,会调用哪个equals方法 ##?J...

2018-03-08 11:52:48 591

原创 Java线程同步笔记

线程同步多线程情况下,当一个线程使用某一资源时,其他线程无法同时使用此资源,直到当前线程释放对资源的占用。例如A线程使用对象X时,其他线程都无法操作X,直到A线程使用完毕。 https://www.cnblogs.com/XHJT/p/3897440.html实现方式:1、通过synchronized关键字修饰方法或者代码块://同步普通方法//同步静态方法时,...

2018-03-08 01:07:10 257 1

原创 Java基础(一)

(一) java基础知识点java中==和equals和hashCode的区别答:对于Java基本类型,== 判断的是值,对于对象,==判断的是对象地址,一般情况下,equals和==一样, 因为对象的equals方法直接就是判断是否==,也是判断的对象引用地址。 public boolean equals(Object obj) { return (this =...

2018-03-07 00:39:19 212

原创 Android消息机制源码简析

简介Android应用程序通过消息驱动,在线程间的通信中,通过Handler、Looper、MessageQueue来实现消息的传递和处理。在使用时,一般我们会用Handler handler = new Handler(); 在当前线程(一般是UI线程)创建一个Handler对象; 然后,通过在其他线程里使用handler.sendMessage(message) 来发送消息给当前线程...

2018-02-27 23:33:09 438

原创 retrofit 2.3.0 接入和使用

前言开门见山,本文记录了如何接入并使用square出品的retrofit网络框架。一、准备工作添加retrofit 的依赖(或直接使用jar包)这边并不能直接连接网络,所以直接下载jar包并使用了添加okio依赖或引用jar包 添加jar包之后,还要添加okio的jar包,不然会报错java.lang.NoClassFoundError:okio.Buffer添加converter-gso

2017-05-18 22:34:52 1288

原创 Android Util工具类的封装

摘要本文总结了过往项目和一些资料上的Android 工具类的封装,既当做是总结,也作收集收藏用。感谢网络上诸方资料。SharedPreferences工具类:SPUtil.javapublic class SPUtil { public static final String FILE_DEFAULT = "default"; public static int getInt(Stri

2017-04-08 14:13:00 2019 1

原创 Android 页面异常显示的简单封装

摘要一般来说,进入一个页面大都会请求网络,请求网络便会有各种异常,比如返回数据为空、服务器异常、参数错误,等等…那么页面在得到这些返回结果后,总会要有个反馈,用来显示给用户,总不能所有的异常都用Toast来显示吧,所以界面还是要有的。 那么界面显示在哪里呢?一般一个页面会有标题栏,标题栏下面是内容,然后有的还会底部栏,标题栏和底部栏总不能被异常界面遮住,所以要展示异常的地方,必须是页面的正文部分。

2017-04-08 14:09:20 5824

原创 apk重新签名

摘要上线到应用市场时,可能会出现需要重新签名的情况,比如360加固后需要重签名,整理了下网上的资料,记录在这里便于查阅:apk重新签名步骤: 将apk文件放到某一目录下,改成.zip或者.rar文件,删除里面的META-INF文件夹,再改成.apk文件 然后将keystore文件复制到同级目录下,然后运行:jarsigner -verbose -keystore appkey.keystore

2017-04-08 14:07:33 665

原创 Android ToolBar的封装

摘要现在开发的项目中,发现需求里面,既有“返回图标-标题文字”类型的普通toolbar,也有“返回图标-标题文字-菜单图标”和“文字-标题文字-文字”这种类型的,也就是说,Toolbar的左边和右边都有可能是文字或者图标,而中间一般都是标题,所以寻思着封装下toolbar,使之能适应这种需求。正文要做的东西很简单,就是自定义一个布局,然后左边放一个ImageView和一个TextView,中间放一个

2017-04-08 14:03:24 1253 1

原创 Android 基类BaseActivity的封装

摘要本篇总结了前人写的BaseActivity,自己在开发过程中也添添补补,删删改改,现在总结下。本篇很多知识借鉴和学习了知乎上iYng大大的回答,先感谢一波。顺便上原文链接: https://www.zhihu.com/question/47045239/answer/105086885正文一般来说,不同的项目的BaseActivity不尽相同,根据不同的业务逻辑和功能需求,会有很多区别。这里总

2017-04-08 14:01:20 13226 4

原创 Android蓝牙使用(一)

Android通过BluetoothAdapter来检测蓝牙状态,打开或关闭蓝牙,扫描蓝牙并得到蓝牙信息等功能。 在使用时,通过BluetoothAdapter.getDefaultAdapter()方法来获取系统的BluetoothAdapter,如果系统支持蓝牙则会返回实例,如果不支持,则返回空;写个简单的demo来看看吧:先在MainActivity.class 中定义BluetoothAd

2017-04-05 13:51:06 1343

原创 Java.lang.RuntimeException: Unable to instantiate activity ComponentInfo

与“Manifest文件中忘记注册Activity”不同,这个错误发生的原因之一,应该是Manifest文件里有注册activity名字,但是要么名字路径错误(比如在其他访问不到的地方如拷贝代码却忘记添加代码所需的jar包,或者没有使用完整路径的包名),要么就是该Activity类不是什么正经类,比如我这边误操作,不小心把activity设置成abstract类型的 ,然后就无法实例化,所以star

2017-01-07 09:41:07 566

原创 OkHttp框架二次封装,post json格式的参数(下)

没看过上篇的,建议先看上篇,传送门:http://blog.csdn.net/black_dreamer/article/details/53068620响应数据的格式服务器响应的数据,结构也大都固定,比如:{"result": { "total": 0, "data": { "uid": 9527, "token": "xxxxxxxxxxxxx"

2016-11-07 18:06:48 2232

原创 OkHttp框架二次封装,post json格式的参数(上)

OkHttp框架二次封装,post json格式的参数(上)请求的封装本篇主要是针对后台数据格式,进行请求参数的封装。封装的目的,是为了配合后台的数据结构,方便客户端进行数据的请求和响应数据的处理。数据请求的格式数据请求的请求以Json格式传递参数到服务器,在本例中,参数分为了公参和私参,请求体结构如下:{ "args": { "pri_args": {

2016-11-07 18:05:56 7391

原创 Okhttp框架的二次封装,post json格式的参数

公司项目后台请求,需要上传json格式的参数,本打算直接使用鸿洋(博客)大大封装的okhttp-utils,但是发现大大虽然封装了表单的post,但是没有json的(可能我眼瞎没看见),所以还是需要根据公司具体的参数结构,进行二次封装。 比如参数如下:{ args: { pub_param:{ "username":"old wang",

2016-11-04 15:26:30 1279

原创 Activity次级页面和主页间来回跳转,防止重复创建Activity实例

很多时候,在进入详情页或次级页面的时候,最后会返回到上一个Activity。在返回时,一般用Intent去启动。但是如果单纯地使用Intent intent = new Intent(A.this, B.class) ;startActivity(intent) ;你会发现,多次地从A进入B,又从B回到A,然后这两个Activity就会一直创建。打log发现两个Activity的onCreate方

2016-07-24 17:50:29 6405 1

原创 jsp img标签显示本地文件夹图片

在Idea的Web项目中,从本地文件夹获得图片可以使用虚拟目录,步骤如下:任意地方建一个图片文件夹pictures,里面放图片: 在run菜单里选择Edit configurations: 在Deployment下选择“+”,External Source 选中新建的文件夹,作为关联的目录 选中添加的picture,在Application context里添加虚拟的目录名,随意写都行,这里用pi

2016-07-19 14:55:49 3447

原创 Android Fragment + ViewPager +LazyLoad的应用

最近看到一篇微信文章,讲的是ViewPager + Fragment的懒加载。博主以前也遇到过这样的问题,要在APP启动的时候判断从网络获取的一个字段,来确定是否隐藏一个列表的item,当时直接在主Activity里获取字段,然后设置item显示状态,结果发现每次服务器动态改变字段后,APP根本不按照字段来显示/隐藏item,打log后发现在进入APP的时候,ViewPager的预加载属性在捣鬼,主

2016-07-18 21:06:35 1242

原创 React-native ListView不滚动

发现ListView里的数据,即使溢出了屏幕,也还是不滚动,查了资料,发现contentContainerStyle这个样式里,不能设置flex: 1 ,否则不会滚动。 参见: http://stackoverflow.com/questions/32874559/listview-fails-to-scroll

2016-07-15 09:32:32 4737

原创 React-native ListView 必须点击屏幕才会加载数据

最近在改动ListView时发现ListView数据不是在进入界面之后就加载出来,而是要点击屏幕之后才会加载数据,很怪异的bug。 首先函数是这么写的:在fetchInfo()里去获取服务器里的个人信息,然后再设置到页面。整理之后发现还是逻辑问题,以后得多注意思维清晰。fetchInfo() { if(!this.state.fetched) { var b

2016-07-13 23:28:55 4233 2

原创 React-native项目改包名

应公司开发规范需求,项目报名必须以公司反向域名为基础,于是大费周章改包名,整理例子如下: 1、新建文件夹test,把原来的包放进去 pre: 改路径之后(com文件夹和changename文件夹之间添加了一个test文件夹): 2、AndroidManifest.xml 把com.changename改成com.test.changename 3、MainActivity.jav

2016-07-13 23:24:32 4454 1

原创 React-native植入原生Android应用

首先按照React Native的官网上所说的步骤来。 注意事项 1. 一些其他文件: curl -o .flowconfig https://raw.githubusercontent.com/facebook/react-native/master/.flowconfig 上面的这个语句,其作用只是新建了一个.flowconfig文件,这些文件可以直接从其他RN项目里拷贝,如下图:

2016-07-13 23:18:00 1406

原创 React-native设置全局函数globle【适用于有组件嵌套时】

APP的首页App.js里,根据logFlag的值来判断渲染的内容是登录页面还是首页: 以前的逻辑是在MyInfo.js文件里的注销按钮里设置isLogin为false,然后跳转到App.js,App.js判断isLogin为false,设置this.state.logFlag为false,然后渲染出组件,即显示出了登录界面。但是问题出现了,当在登录界面登录成功后,默认的逻辑是跳转到App.j

2016-07-13 23:07:53 8119

原创 Java端和JS端的AES加密解密同步

Java端和JS端的AES加密算法同步 公司要求登录时用户名和密码必须先加密,再将数据发送到服务器。由于这种加密必须要求是可逆的,所以不能用MD5来加密,MD5不是可逆的。后台选择了用AES加密。然后问题就是如何跟公司的Java算法得到同样的结果。 后来在搜寻了很多算法后,发现了解决方案,改动公司的算法,然后就可以轻松匹配了。 • Java端的算法:import javax.crypto.Ci

2016-07-13 23:02:53 10832 1

原创 React-native listview换行

先看看ListView的代码,其布局style为list: 布局list才是关键: 在list中设置整个ListView的 的宽度为屏幕的宽度(通过Dimendions.get方法来获取),ListView的 contentContainerStyle 里设置的是Item的显示方式,通过flexDirection来设置Item以列(row)的方式渲染出来,然后设置其width属性为跟屏幕

2016-07-13 22:59:49 4560 4

原创 React-native中DatePickerAndroid的使用

在react native中,用DatePickerAndroid来打开系统的日期选择器,上图: 关于async和await,见阮一峰老师的日志: http://www.ruanyifeng.com/blog/2015/05/async.html不同的手机系统上显示的new Date()是不同的,有的显示的是:2016/4/15,有的是04/15/16,所以将时间用toLocalString()

2016-07-13 22:52:56 6833

原创 React-native fetch请求网络

开始的服务器直接传的字符串,所以这边用POST去请求,直接连接字符串LOGIN_REQUEST= LOGIN_URL +'?loginName='+uName + '&password='+uPwd; fetch(LOGIN_REQUEST,{ method: 'POST', header: { 'Aceept': 'application/json',

2016-07-13 22:44:40 4939 1

RecyclerView 嵌套RecyclerView,各自响应滑动事件

RecyclerView 嵌套RecyclerView,各自响应滑动事件

2017-06-01

java 子线程通过观察者模式通知主线程

java 子线程通过观察者模式通知主线程

2017-04-10

Okhttp框架post json封装

Okhttp框架post json封装

2016-11-07

Android Fragment + ViewPager

Android Fragment + ViewPager做成的底部菜单,介绍文章链接:http://blog.csdn.net/black_dreamer

2016-07-18

Android文件操作(写入和读取)

简单的文件操作,适合新手阅读,不要积分哦,可以看看^_^

2015-11-27

空空如也

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

TA关注的人

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