自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rocky Kou的博客

没有平白无故的结果,一切皆源于你的付出

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

原创 关于友盟微信分享问题

最近在项目中,发现原来使用的“友盟分享”不能正常回调。具体表现:1.用户分享到微信或者朋友圈,正常会调用相应onSuccess方法2.用户分享到微信或者朋友圈,取消分享,正常会调用onCancle方法,奇怪的是,还会调用onSuccess方法最后是发现,官方做了修改,...

2018-12-01 15:03:06 734

原创 Android开发之安全彻底的修改包名

昨天,因为项目需要对包名进行修改,经过一番折腾,项目正常使用,为此,对修改包名涉及的东西进行总结。1.修改,AndroidManifest.xml文件搜索并找到”package”属性,进行修改package="com.project.xxx.xxx"搜索并找到”application”标签,查看name属性,是否使用全包名引用,如果是全包名,包名可能需要修改,如果非全...

2018-05-31 11:26:25 4346 1

原创 关于The specified Android SDK Build Tools version (26.0.2) is ignored, as it is below the minimum...

今天将项目迁移到另一台笔记本,进行build出现以下问题,导致build失败The specified Android SDK Build Tools version (26.0.2) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.1.Androi...

2018-05-03 18:32:21 35597

原创 从“上帝”视角看后端接口如何设计

这里先说说“上帝”是什么?上帝,是移动端,pc端,h5端的统称,为什么这么说呢,接口设计的最终目标,是让用户可以正常使用软硬件提供的服务。用户使用不同的端来访问接口,从而与后端发生关联关系,进而使用相关的服务。而这些端的开发者,他们将界面与接口进行有效的结合形成一个个有机体,不同的有机体组合形成一套系统,他们使用接口,他们是顾客(自家的接口免费用,别人的接口限制或者付费用),而顾客是什么?是上...

2018-05-02 21:39:22 474

原创 关于 Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2

最近更新了as3.0.1,前两天跑着还没问题,结果昨晚周末,打开跑不起来了,啊,简直要爆炸,莫名的烦躁。今早到公司,赶紧看下,怎么办呢,还是看看报错问题吧先来看下错误类型,FAILURE: Build failed with an exception.* What went wrong:Execution failed for task ':mergeDebugResources...

2018-04-24 00:22:44 17527 1

原创 关于Failed to transform file 'xxxxxx.jar' to match attributes

最近没有修改依赖项目lib,只是升级了AS版本到 3.0.1,结果在跑项目时,出现build失败。首先,看下问题,FAILURE: Build failed with an exception.* What went wrong:Could not resolve all files for configuration ':debugCompileClasspath'.> Fai...

2018-04-23 12:01:52 23584

原创 Android开发之Bitmap各种转换-ImageUtils

对于在项目中,经常对图片进行处理,来满足不同功能需要,整理了部分常见需求代码,分享一下,后续不断更新中bitmap转字节数组public static byte[] bitmap2Bytes(final Bitmap bitmap, final CompressFormat format) { if (bitmap == null) return null; ...

2018-04-16 23:42:05 5671

原创 Android开发之字符串各种判断-StringUtils

判断字符串是否为null或者空public static boolean isEmpty(final CharSequence s) { return s == null || s.length() == 0;}判断去除空格后的字符串是否为null或者空public static boolean isTrimEmpty(final String s) { ...

2018-04-15 19:01:38 5101

原创 Android开发之dp、sp、px转换-SizeUtils

对于开发中dp、px间的转换,sp、px间的转换,获取view测量宽度和高度,进行汇总dp转pxpublic static int dp2px(final float dpValue) { final float scale = Utils.getApp().getResources().getDisplayMetrics().density; return...

2018-04-15 16:27:15 467

原创 Android开发之获取屏幕宽高、屏幕密度、截取屏幕、全屏、横竖屏切换-ScreentUtils

在开发中,经常会用到屏幕相关的操作,比如,获取屏幕宽高、屏幕密度、截取屏幕、全屏、横竖屏切换等等,因此,在这稍加整理以下内容获取屏幕宽度public static int getScreenWidth() { WindowManager wm = (WindowManager) Utils.getApp().getSystemService(Context.WIND...

2018-04-15 15:01:38 1355

原创 Android开发之判断对象是否为null或空-ObjectUtils

判断对象是否为null或者空public static boolean isEmpty(final Object obj) { if (obj == null) { return true; } //见以下各种判断}判断字符if (obj instanceof CharSequence && obj.toStri...

2018-04-15 11:42:15 17643 2

原创 Android开发之显示隐藏输入法

显示输入法public static void showSoftInput(final Activity activity) { InputMethodManager imm = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); ...

2018-04-15 10:32:05 789

原创 Android开发之获取状态栏-BarUtils

在开发中,经常会需要会各种栏的设置。比如,获取状态栏高度,对状态栏进行隐藏等,为此,对于这些操作整理了下目录状态栏获取状态栏高度设置状态栏是否可见设置状态栏模式将view的topMargin加上状态栏高度将view的topMargin减去状态栏高度设置状态栏颜色获取ActionBar高度消息栏设置消息栏是否可见导航栏获取导航栏高度设置导航栏是否可见...

2018-04-14 18:08:46 3982

原创 Android开发之获取手机信息工具-PhoneUtils

判断设备是否为手机public static boolean isPhone() { TelephonyManager tm = (TelephonyManager) Utils.getApp().getSystemService(Context.TELEPHONY_SERVICE); return tm != null && tm.getP...

2018-04-14 10:07:58 1494

原创 web开发之常用css小技巧

1.修改input,内部placeholder的字体颜色2.超链接去除下划线3. 行缩进,字与字间距,行与行间距4.z-index6.自定义输入框input7.如何设置头像为圆角8.如何在将div并排列显示9.div内包含文本超出外边距10.多个div显示在同一行,导致下面的也跟着浮动11.设置script标签12.设置html锚点最好方法是用js的srollInto...

2018-04-12 22:53:37 204

原创 Android 常用插件、工具汇总

分享一些目前在用,跟开发相关的,感觉还不错的插件工具,哪儿位同学有好用的插件或者软件,可以留言哦!接口调试系列postman chrome插件 传送门 http://chromecj.com/web-development/2014-09/60/download.html文章系列掘金插件 传送门 https://juejin.im/extension/Json解...

2018-04-12 00:01:06 380

原创 effective java之类和接口

类和接口类和成员被外界可访问的最小化在类中使用方法访问域而非直接访问公有域复合优先于继承要么为继承而设计提供文档说明要么禁止继承接口优于抽象类接口只用于定义类型类层次优先于标签类优先考虑静态成员类类和接口类和成员被外界可访问的最小化设计良好的模块 这个模块对于外部其他的模块,是否隐藏其内部数据和实现的细节。设计良好的模块会隐藏所有的实现细节,把他的api与具体的实现清晰的隔离

2017-04-06 23:24:41 391

原创 effective java之创建和销毁对象

创建和销毁对象静态工厂方法创建对象创建对象实例与构造器对比静态方法局限性多个参数考虑使用build构建器静态工厂与构造方法局限性优点缺点场景用私有构造器或者枚举类型确保singleton懒汉式饿汉式枚举类静态内部类用私有构造器确保不可实例化消除过期的对象引用内存泄漏创建和销毁对象何时以及如何创建对象何时以及如何避免创建对象如何适时销毁对象如何管理对象销毁之前

2017-04-06 22:33:39 605

原创 android 常用第三方服务

消息推送极光推送百度推送个推腾讯推送小米推送友盟推送数据统计友盟统计百度统计TalkingDataCrash崩溃统计分析百度crab平台BuglyBugHD应用加固360加固保爱加密加固阿里聚安全百度加固腾讯云加固梆梆加固Dexguard分享三方平台友盟分享ShareSDK自动化测试即时通讯融云网易云信环信极光IM友盟IMVTC微特喜

2017-03-26 22:52:50 2324

原创 客户端Http请求失败原因总结

几天没写博客了,最近看到有同学问http请求失败是怎么回事,于是想写一篇关于http请求失败各种原因的文章,废话不多说,写起来一.访问服务器形式    1.向服务器请求数据,是域名访问还是IP访问           域名是否正确,IP地址是否正确,端口是否与服务器端匹配,这是由于不停的在开发环境、测试环境,或者生产环境来回切换导致的,比较容易排查    2.拼接字符是

2016-11-30 23:07:46 34099 2

原创 Duplicate id xxx, tag null, or parent id xxx with another fragment for xxxFragment

这个问题,是在使用其他sdk进行开发时出现的,觉得比较典型,记录下,具体表现:首次进入问题界面ok,切换其他界面后,再次进入问题界面,应用终止堆栈信息如下:Caused by: java.lang.IllegalArgumentException: Binary XML file line #50: Duplicate id 0x7f0c001e, tag null, or p

2016-11-23 21:41:02 2615

原创 android studio中的文本替换

使用as开发时,经常涉及在java或者xml文件中替换一些字符串,变量名,资源名等情况,挨个替换简直崩溃,所以这里介绍下    第一种:同一文件内,替换使用 Ctrl + F    第二种:不同文件(全局),替换使用 Ctrl + Shift + F1.同一文件内,替换使用以values文件下,strings中内容替换为例,原有的图片资源是在drawable下,现在需要改为

2016-11-16 23:59:18 19527

原创 Handler、Looper、Message、MessageQune之间的原理

说到sendMessage,开发中用的比较多,是Handler的方法,而Handler的机制,在整个Android系统中的应用非常广泛,当然,也是面试中经常问到的知识点,过一过源码,在此梳理下,首先,一般使用Handler代码是这样的,如下: Handler handler = new Handler(){      public void handleMessage(androi

2016-11-12 15:09:20 375

原创 LayoutInflater是如何“移花接木”-下篇

LayoutInflater“移花接木”的上篇,介绍了LayoutInflater对象的获取方式,更主要的是分析几种方式的原理,发现最终都是通过获取系统服务的方式。那么,本篇算是“移花接木”的重头,主要分析xml是如何转换为view的获取LayoutInflater对象后,就是使用Inflate方法,从此开始,揭开“移花接木”之神秘面纱...LayoutInflater.java

2016-11-11 23:43:14 281

原创 LayoutInflater是如何“移花接木”-上篇

开篇之前,先唠叨唠叨为何用移花接木,移花接木,指使用手段更换事物来欺骗他人,不过开始想到的是偷梁换柱,暗渡陈仓,还有暗送秋波这些词,仔细查阅了下资料,无奈,两者大都是贬义词,后者又是献媚取宠、暗中勾结之类的含义,也是贬义,本着怜香惜玉的原则,最终选择移花接木这个词,为标题所用。说到LayoutInflater,很多人说熟悉,它将我们的xml布局转化为对应的view,看呐,xml转换为vie

2016-11-11 20:39:25 303

原创 setContentView到底做了什么

对Activity的setContentView的使用,大家比较熟悉了,当然,对setContentView的原理估计也比较熟悉,网上有不少的文章,不过,还是写一篇这方面的东西,记录下,毕竟很多东西,看别人的是一回事儿,自己写又是一回事儿,当作是对知识的温故,再学习吧!Activity.java首先,在自己的activity中,调用setContentView(int resID)方法

2016-11-11 13:43:41 16575 4

原创 Application中ActivityLifecycleCallbacks的原理分析

ActivityLifecycleCallbacks是Application中的一个接口,既然是在Application中,不得不说说Application类,别急,一个个来说道说道ActivityLifecycleCallbacks接口,如下: public interface ActivityLifecycleCallbacks { void onActivityCr

2016-11-10 21:34:31 2416

原创 xxxActivity did not call through to super.onStart()等方法SuperNotCalledException的源码分析

在编写activity的过程中,会遇到类似以下异常信息:throw new SuperNotCalledException( "Activity " + mComponent.toShortString() + " did not call through to super.onStart()");一眼看去,知道是关于supe

2016-11-10 16:55:44 5480

原创 Activity界面内容不显示,你遇到了吗?

编写Activity时遇到的一个问题,在此记录,也分享下,Activity写好运行后,genimotion开启应用,却发现界面不显示内容,后来发现标题栏label也不显示。于是开始排查问题原因,在确认setContentView调用,布局文件填充、编写无误,as没有问题情况下,gradle没有问题下,因为gradle编译其他应用正常,依然不显示,奇怪了,不过还是要继续找问题出在哪儿。最终问题出

2016-11-09 23:11:28 5693

原创 android studio中轻松实现自定义模版

还在为写switch,foreach语句烦恼吗?还在写一些常见的不想手写的程序代码吗?赶紧行动起来,有了as神器,轻松解决你的烦恼,工作起来更加专注,更加有效率。看看我是怎么做到的,步骤如下:1.菜单中的File -> Setting,或者使用默认快捷键,Ctrl + Alt + S(前提不会与一些软件的快捷键冲突)2.在搜索框,输入“Live Templates”,关键词不分

2016-11-09 20:13:27 1036

原创 android的MVC、MVP、MVVM比较

MVC应用大致为三部分:    视图(View):用户界面,用户操作输入    控制器(Controller):业务逻辑,不同的数据服务    模型(Model):数据保存,也就是不同的数据实体各部分之间的通信方式:    View传送指令到Controller    Controller完成业务逻辑后,要求Model改变状态    Model将新的数据发送到V

2016-11-09 16:09:59 406

原创 git常用命令

创建版本库初始化一个Git仓库,使用git init命令。添加文件到Git仓库,分两步:第一步,使用命令git add ,注意,可反复多次使用,添加多个文件;第二步,使用命令git commit -m 'xxx',完成。要随时掌握工作区的状态,使用git status命令。如果git status告诉你有文件被修改过,用git diff flie可以查看修改

2016-11-08 23:49:37 208

原创 android studio常用快捷键总结

常见快捷键:Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Sp

2016-11-07 23:51:37 268

原创 你真的了解SharedPreferences的Editor吗

你真的了解SharedPreferences的Editor吗?很多人觉得,再熟悉不过了,经常使用它进行数据的存储现在,有你可能不知道的,commit()方法,apply()方法,PS:知道的童鞋,自行绕道哈,不了解的可以继续看下去先说熟悉的,commit()谷歌解释commit方法,当两个Edtior在进行存储数据时,最终存储的数据是最后一个调用commit()的

2016-11-04 23:55:08 427

原创 SharedPreferences存取特殊数据

说到SharePrefrence,简称sp,大家一点不陌生,经常会用它存储一些简单数据,那么简单数据是什么?这里总结下SharePrefrence中有个抽象类叫Editor,包含以下方法:    存储普通数据:    putBoolean(String key,boolean value),保存整型    putInt(String key,int value),保存int

2016-11-04 23:12:24 273

原创 android中子线程可以更新UI,是真的吗?

看到这个问题,相信很多小伙伴认为,android开启子线程更新UI,是不对的,为什么呢?因为只有主线程(UI线程)才可以进行UI的修改,如果在子线程进行UI更新,会抛出异常:    android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hi

2016-11-04 16:55:55 381

原创 java中多态

1.什么是多态    同一操作,作用于不同的对象,可以有不同的解释,产生不同的执行结果,就叫做多态2.多态分类    编译时多态、运行时多态    编译时多态:也叫设计时多态,这种多态实际上就是方法重载。    运行时多态:java代码在被运行时,系统根据调用该方法的实例的类型来决定选择调用哪个方法,被称为运行时多态,体现在方法重写    ps:区分编译与运

2016-11-03 23:38:00 605

原创 java中的抽象与接口比较

这里从以下几个方面比较:构造方法    抽象类可以有构造方法    接口没有构造方法访问修饰符    抽象类中的方法可以用public、protected和default这些修饰符修饰    接口中的方法默认修饰符为public,有且只有public修饰符main方法    抽象类中可以有main方法,可被执行    接口没有main方法默认方法

2016-11-03 22:36:38 526

原创 关于android studio导入github项目build失败

在使用as时,经常需要导入github上项目1.从github获取项目到本地磁盘,有两种方式,    一种是直接downLoad,    另一种是as的菜单项,VCS -> Checkout from VersionControl -> Github,进行clone2.从本地导入到as中,File -> New -> Import Project...,打开磁盘,选择对应的pr

2016-10-29 17:17:01 4456

原创 关于android studio出现Gradle sync failed: Plugin is too old, please update to a more recent version

今天打开as出现以下错误信息:Gradle sync failed: Plugin is too old, please update to a more recent version,or set ANDROID_DAILY_OVERRIDE environment variable to "c8886415bb5988d1b0a94905f809e6b662a7a01e"Consu

2016-10-27 22:56:05 2172

空空如也

空空如也

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

TA关注的人

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