自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

浅浅清风的博客

Android开发

  • 博客(33)
  • 资源 (4)
  • 收藏
  • 关注

原创 AmazonS3 android sdk接入

AmazonS3 android sdk接入前段时间接了iOS的AmazonS3,用于上传及访问大文件和图片。过程比较坎坷,Android总的来说顺利很多,不过也碰到一些问题,在此记录一下官方的示例代码示例代码挺好的,不过不是太符合我的要求,我们服务端给的AWS凭证是动态的,每2小时更新一次。看官方的教程好像是写死在配置里的。而且我也没找到符合我需求的示例代码。集成方式和官网描述一样,不嫌我废话的话,我就贴一下吧。dependencies { def aws_version = "2

2020-12-04 15:31:23 2666 9

原创 IOS Realm使用小记

Swift Realm 使用之前写过一篇Android的Realm的使用小记,后来接触IOS开发了,现在写一篇在IOS中使用Realm数据库的记录本文使用的是'RealmSwift','= 3.13.1'导入在podfile 文件中加入以下代码 pod 'RealmSwift','= 3.13.1'执行pod install命令使用基本配置在AppDelegate文件中加...

2019-09-27 15:18:08 610

原创 Android代码布局-工具封装

Android代码布局-工具封装 android中的xml十分方便,在大部分时候xml基本上都能解决问题了,不过有的时候还是不得不用上代码布局,比如动态布局, 或者是通过代码布局来获得更好的复用性。实际上代码布局是相对比较麻烦,因为设置View的属性的时候, 我们需要关心父布局到底是什么布局,才能设置相应的Param,本文讲讲,如何封装代码,让代码布局和xml布局变得一样简单。效果图...

2018-04-17 18:18:21 1432

原创 Realm异步查询的三种方式

阅读过Realm文档的童鞋们应该都知道Realm、RealmObject 和RealmResults 实例都是不可以跨线程使用的。 虽然Realm查询数据的速度非常快,但有些时候我们还是不得不用上异步查询。在Realm中,从子线程查询到的数据到主线程中是不可以使用的,会报Realm accessed from incorrect thread. 所以我们如果希望通过我们熟悉的方式去创建异步

2017-07-07 11:46:52 4608

原创 Kotlin for Android - 实战记录<一>

·在应用任意类中获取Application(没有context时,获取Application)·在应用任意类中获取SharedPreference(没有context时,获SharedPreference)·在Fragment中直接使用布局文件的id作为控件使用·监听EditText内容变化,更优雅的方式·是用kotlin定义一个Dialog模板

2017-06-23 16:47:03 4791

原创 Kotlin for Android - 常用关键字

kotlin中与java用法一致的关键字包括:override ,while 等声明· open 在kotlin一个类需要被另一个类继承的话,需要用到open关键字open class OpenClass {}· is 判断类型 fun testIs() { var a: Any? = null; a = 3L if (a is Int) {

2017-06-23 15:36:23 1249

原创 Kotlin for Android - 基础语法(类 函数 空检查)

基础语法提要· 在kotlin中用法与java基本一致时,本文均省略描述,如:定义包,注释,if else,while等· 在Kotlin中代码不需要分号结尾,所以一行也不能写两行代码。如:print(1)print(2) 放在同一行是无法编译通过的。· kotlin中变量是var,常量是val,可以指定类型,也可以系统推断类型 var a: String = "指定类型变量" var

2017-06-12 16:09:17 823

原创 Kotlin for Android - Hello world

使用Kotlin进行Android开发Kotlin非常适合开发Android应用程序,将现代语言的所有优势带入Android平台,无需引入任何新的限制:兼容性: Kotlin与JDK 6完全兼容,确保Kotlin应用程序可以在较旧的Android设备上运行,无任何问题。Kotlin工具在Android Studio中完全支持,与Android构建系统兼容。性能: Kotlin应用程序运行速度与J

2017-06-10 10:03:54 1051

转载 在onCreate中正确获取View的宽高

前言在Activity/Fragment 的onCreate 方法中,我们时常需要获取组件的宽高,但此时View并未绘制完成,直接获取到的宽和高都是0,那如何在绘制组件之前能获取到该组件的尺寸大小呢? 方法方法一 ://测量方法int width =View.MeasureSpec.makeMeasureSpec(0,View.MeasureSpec.UNSPECIFIED);int heigh

2017-02-17 14:31:02 841

原创 Android 按键防止过快点击(防抖),在ButterKnife中的简单解决方案。

其实自己也在网上找了一些防抖的方案,比如RxBinding啊,NoDoubleClickListener啊,原始解决方案啊等等,不过那都不是我想要的。 因为项目中使用了ButterKnife绑定控件和为控件注册点击事件。所以上面搜到的那些方案都不太好使,原始的又过于臃肿。 最后还是只能自己动手丰衣足食了。 其实想要防抖无非就是判断一下时间差,但每次写一堆代码,或者说每次复制一堆代码,很臃肿,我

2016-11-09 16:03:03 11919 1

原创 使用SimpleXml解析xml数据<三>

使用SimpleXml解析xml数据<三>前两篇博客介绍了一些基本xml解析。 不过在使用过程中我们有可能也会遇到比较变态的xml,这篇博客主要讲讲怎么解析稍微不正常一点的xml。第一种:<Bean xmlns:soap="http://www.w3.org/2001/XMLSchema-instance"> <soap:value>123</soap:value></Bean>这种相对

2016-10-14 11:05:21 2152 2

转载 Rxlifecycle使用详解,解决RxJava内存泄露问题

原文 http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/1122/3711.html随着Android第三库的普及, RxJava 和 RxAndroid ( https://github.com/ReactiveX/RxAndroid )越来越被人熟知,简洁的语法,配合Java8 Lambda表达式,使代码的结构更加清晰,通过线

2016-08-23 14:48:46 3049

原创 Realm使用小记

最近有点空闲时间,就记录一下以前忘记记录的内容。 Realm是一个能够代替SQLite和Core Data的手机数据库。使用 C++ 内核,所以效率非常的高,是 sqlite 的近几倍。 其实我们自己也可以写demo测试一下存储相同数据,两个数据库所消耗的时间。 Realm在多个平台上都可以使用,据说数据库文件可以在多个平台上通用。 添加依赖,在工程目录下的build.gradle中加上cl

2016-08-22 17:34:58 7792 2

原创 Rxjava操作符(defer,compose,retryWhen)

上一篇博客讲了Retrofit的简单使用,应该看过的都基本了解我们公司这个服务器请求网络数据的流程,我来简单梳理一下: 第一次登录,创建cookiejar,请求服务器数据,保存accesstoken到本地 请求其他网络数据,使用已存在的cookiejar,传入本地保存的accesstoken基本上是这样,但是在实际操作中,用户可能登录之后,过了很久才去请求其他数据,这时候cookie已经失效就

2016-08-22 14:24:37 3481 1

原创 Retrofit、Okhttp使用小记(cookie,accesstoken,POST)

博主在项目中用RxJava也差不多几个月了,但是结合Retrofit使用经验还不是太多。恰好新项目的后台是http+json的,就打算尝试一把。 刚开始由于Retrofit还不太熟,但是后台接口急着测试,所以只好先用okhttp把接口测试成功先。 最最简单的测试方法就是http在线测试啦,相信很多小伙伴都知道啦,不过还是给不知道的小伙伴科普一下吧,http://www.atool.org/htt

2016-08-22 11:55:40 2386 3

原创 如何写自定义Activity、Fragment模板

因为在项目中使用MVP模式,所以每次新建一个Activity、Fragment的时候都要写一大堆的类,接口和Presenter。如果加上Dagger2,那酸爽,简直了。上篇有提到MVP+Rx的结构,这篇博客就基于上篇博客来自定义一个模板文件, 如果不想自己重头开始写的, 可以把我发在github上的模板稍微改改就可以用了(需要掌握一些基本规则,文章会穿插着讲如何修改)博客写的比较急,内容有些乱,耐心

2016-08-08 18:52:59 2437

原创 RxJava+MVP

在公司项目中使用RxJava和MVP已经很久了,从一开始使用到不断完善这个结构,最近也看到很多QQ好友有类似这方面的问题,就想着把这个抽出来放到github上面,供大家参考。先说说这个mvp把, mvp我自己的理解就是通过一个中间类,做一个View和Model之间的一个联系类,view和Model不再直接联系,达到程序解耦的目的。MVP是一种设计模式,是一种思想,没有一个标准的实现过程,但是也要遵循

2016-08-08 11:54:55 3361 3

原创 像使用插件一样为listview添加侧滑,上拉加载等功能

像使用插件一样为recyclerView/listview添加侧滑,上拉加载等功能(几乎无需改动原有代码)RecyclerView 和Listview在项目中算是非常常用的了,不过在博客的开头,我还是要重申一下这个库的特点,几乎无需修改原有代码,而且所有功能全都独立。RecyclerView 和Listview用法大家都非常清楚,有时候我们经常在编写好listview和Recyclerview中的内

2016-08-03 16:10:41 1367 1

原创 使用SpanableString实现textview部分字体点击事件(不同颜色)

使用SpanableString实现textview部分字体点击事件(不同颜色)之前看到qq那种文本里面带@好友的,点击@XX就可以出发点击事件的效果很是好奇,后来无意间发现这个SpanableString,话说这个东东,功能还真是蛮强大的。这篇博客只讲一下ClickableSpan 今天尝试学习了下, 记录一下学习过程。 先上效果图吧: 感觉是不是还不错。 怎么实现的呢, 其实非常简单

2016-07-22 16:32:33 2925

原创 在WebService中使用Retrofit+RxJava

最近Retrofit+RxJava还是非常火的,搭配一下MVP那开发简直就一个字爽。 但是现在很多比较老一点的公司还在使用WebService+xml,真的很让人感到忧伤。不过真的想使用Retrofit替代ksoap也不是不行的,至于效率到底高不高,还是要亲测才知道。 首先说一下WebService其实也是基于http的,也是同样可以用http去请求的。由于每个公司的协议都不同,所以在请求的时候

2016-07-06 10:48:37 3884

原创 记录下对项目进行重构的过程

最近因为研究了Retrofit+RxJava+MVP,感觉这种组合相当好,再看看自己之前写的代码,可维护性真的太差了。 由于公司项目使用的是WebService+xml,所以我写了个Demo让WebService+xml也能使用Retrofit+Rx+MVP。但后来想想,如果把项目真的完全改成这种模式,那付出的代价太大了。 由于项目是已经上线的,对项目进行重构,必须要保证能够对之前的版本兼容。

2016-07-01 16:29:26 4042

原创 怎么去掉工程中无用的so包(Realm的坑)

之前在项目中引用了百度地图的SDK,按照官方文档来操作,把所有的so包全都拷贝到libs文件夹下,结果app蹭的一下多了好几M,后来项目快上线的时候,经理就说,这个app怎么这么大呢,想办法压缩一下。没办法,只能硬着头皮搞啰。 后来,在网上找了好多减少apk大小的教程。基本上都提到了只保留一个armeabi文件夹下的so包。 然后我删掉了其他文件夹的so包,然后一运行,哈哈,真的小了3M左右,而

2016-07-01 15:10:32 4847 1

原创 使用SimpleXml解析xml数据<二>

上一篇讲了如何将一个包含了对象的Xml文件转换成一个对象. 今天继续解析一个list和嵌套对象的解析. 首先解析一个list,xml文件如下:result = "<GetPositionListResult>" + " <PositionInfo>" + " <ReqDegreeID>0</ReqDegreeID>" + "

2016-06-22 12:42:16 3565

原创 使用SimpleXml解析xml数据<一>

最近研究上了Retrofit+Rxjava,对于http+json的服务器来说,这简直就是神器,不幸的是我公司使用的是Webservice+xml.在第一步我就遇到了困难.不过要用也不是没有办法.首先第一步我们得先学习一下这个传说中SimpleXml.想想很多年前我还是自己全手动解析xml的,真是太心酸了,后来又用了dom4j,jdom之类的xml解析工具.不过后来我发现了JAXB这个xml解析工具

2016-06-21 18:14:11 6030 1

原创 使用Android studio发布项目到jcenter

前不久写了一个路径动画的库,想上传到jcenter让其他人可以通过complile的方式来依赖使用. 在网上找了很多文章,自己也试了很多方法,最后还是参照鸿神这篇文章上传上去了.说起上传库的过程,真是太心酸了.本来想转载鸿神的 快速发布项目到jcenter,无奈没有找到转载的按钮,决定自己写一篇. 因为在上传的过程中,我也遇到了许多问题,也算是记录一下,希望能帮助其他人少踩一点坑吧,注:步骤与鸿

2016-06-20 11:03:59 911

原创 使用FindBugs-IDEA插件找到代码中潜在的问题

我们通常都会在APP上线之后,发现各种错误,尤其是空指针异常,这些错误对于用户体验来说是非常不好的,但其实大部分的问题,我们都能够提前发现.在编写代码的过程中,可能不会时时刻刻记得检查空的引用,还有删除没有用过的变量,在我们自己测试的过程中可能难以发现问题,一旦app上线,用户的使用环境改变,这些潜在的问题就可能会冒出来. 当然这这只是对于我这种经常写出空指针异常的小白而言的,编程风格良好,编程严

2016-06-20 09:32:36 45415 4

原创 使用路径动画完成一个简洁优雅的启动页动画

是不是受够了千篇一律的透明度变化的启动页动画,快来试试使用路径动画和属性动画构建一个特别的启动页动画吧.最近在网上看到一个路径动画的例子,感觉效果很不错,仿照着例子写了一个路径动画的库,并且上传到jcenter,方便AS玩家通过依赖使用. github地址:https://github.com/sunflowerseat/PathAnim 先上效果图,让图说话: 接下来,我讲讲怎么通过这个

2016-06-17 14:26:39 4935 11

原创 使用友盟统计解决程序中的bug

新版本的友盟统计中默认带上了异常捕获,统计Activity数据只需要在BaseActivity中加上如下代码即可。 @Override protected void onResume() { super.onResume(); MobclickAgent.onResume(this.getApplicationContext()); } @

2016-06-08 17:40:06 3723

原创 Android Annotation框架初步实践

Android Annotation框架初步实践实现模拟访问服务器数据和获取验证码倒计时的功能 关于集成别的文章里都有很多,这里就不说了 集成Android Annotation可以参考链接: http://blog.csdn.net/caiwenfeng_for_23/article/details/45801151 ,记录下集成失败的解决方案,在module的build gradle中加

2016-06-07 16:40:22 724

原创 解决webview内存泄漏问题

在项目中遇到需要使用webview来显示一些内容的情况,在整体测试内存泄漏的时候发现这个webview存在内存泄漏的问题.仔细排查了之后,作者在activity销毁的时候调用了webview的destory并且置为了空,然后继续测试,竟然没有任何效果.后来通过在网上查找资料,算是解决了这个webview的内存泄漏的问题, 参考博客: http://my.oschina.net/zhibuji/bl

2016-06-06 15:16:46 4878 2

原创 android使用Leaks检测内存泄漏

Leaks 内存泄漏检测工具使用网址:https://github.com/square/leakcanary 在你的module中添加依赖debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-

2016-06-06 14:33:21 32603 4

原创 一个简单的自定义SwitchButton

一个简单的自定义Switchbuttonxml中定义: <Switch style="@style/widget_gender_switch" android:layout_width="110dp" android:layout_height="w

2016-06-06 10:43:13 1543

原创 Android资源文件混淆

Android资源文件混淆通常我们说的混淆都是指代码混淆,但其实资源文件中也有很多重要的文件,为了防止我们的资源文件被别人用apktools反编译直接获取到,我们可以使用某些工具来为我们的资源文件做混淆,保证我们资源文件的相对安全. 在写这篇博客前,博主已经踩了N多的坑,为了方便更多的人,我把资源文件混淆用到的工具和步骤上传到CSDN供大家参考.准备工作: 工具下载地址:http://downl

2016-04-20 17:52:35 9565 6

SwiftKotlin:把 Swift 代码转换为 Kotlin.zip

SwiftKotlin:把 Swift 代码转换为 Kotlin.zip,将swift代码转换为kotlin的工具。

2021-05-18

Android资源文件混淆工具

通过输入一个apk文件和签名文件,输出相关的配置文件及资源文件被混淆的apk(带签名),注意是资源文件混淆不是代码混淆噢.

2016-04-20

ViewPager的画廊效果(带动画)

类似于超级课程表中一个格子里有两个课程时的滑动效果.使用viewPager实现这种画廊效果,当需要显示很多图片的时候相比被废弃的Gallery更加节省资源.

2015-10-27

ViewPager画廊效果(带动画)

类似于超级课程表中一个格子里有两个课程时的滑动效果.使用viewPager实现这种画廊效果,当需要显示很多图片的时候相比被废弃的Gallery更加节省资源.

2015-10-27

空空如也

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

TA关注的人

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