同步锁synchronized当前两个线程同时访问一个数据对象的时候,会对数据造成破坏,举个简单的例子,商品库有2000个商品,在同一时间,A线程取1500,B线程取1000,这样就会造成麻烦。因此我们需要同步锁去确保我们在多线程下访问修改同一个资源的时候,每次只能有一个线程保持访问。 继续阅读
总结了比较常用的快捷键,由于操作系统、设置的不一样可能导致默认的快捷键不一样,因此就不在下面说明,只是列举了快捷键关键字以及说明,大家可以去Studio的keymap里自行搜索设置 继续阅读
由于通过Http协议传输的数据都是未加密的明文传输,这样会引起第三方伪造客户端与服务端通信、篡改请求数据、获取接口数据内容,由于http传输敏感数据的不安全性,因此在http协议的基础上通过SSL/TLS对传输数据进行加密。 继续阅读
在日常移动端开发中,随着业务需求的不断变化,我们的接口返回的数据就会有各种变动,但由于native语言开发的应用无法动态更新api,在修改接口返回数据改变接口逻辑的同时还要确保旧版本的兼容,因此就用到了接下来要说的API版本控制。 继续阅读
众所周知android应用是基于JAVA语言开发的,JAVA有自己的垃圾回收机制,因此我们不用再释放内存、资源回收方面花费太多的精力,但是JAVA的GC(Garbage Collection)机制是自动进行的,因此在APP开发当中难免会遇到内存泄露,而android分配给每个应用的内存大小是有限制的因此大量的内存泄露积少成多会造成内存溢出(out of memory).所以我们应当重视内存优化问题.接下来我将通过Studio创建一个简单的单例模式内存泄露的例子,使用MAT(Eclipse MemoryAnalyzer)来进行分析. 继续阅读
WebView是基于webkit引擎展现web页面的控件,而且越来越多项目在使用hybrid模式,因此我们在日常开发中不可避免的回合WebView打交道,也会碰到各种各样的问题,有可能是手机系统版本问题,机型兼容问题,耗电问题,安全漏洞问题,资源释放问题,还罗列一些WebView的小功能点,因此特地总结一下,用来提高开发效率. 继续阅读
关于MothonEvent里getAction与getActionMasked的区别
我们经常在dispatchTouchEvent、onInterceptTouchEvent、onTouchEvent中看到MotionEvent对象,通过这个对象我可以可以获取触摸事件然后进行相应的操作,触摸事件类型比较常用的就是ACTION_UP、ACTION_DOWN、ACTION_MOVE等。获取触摸点坐标有以下方法 getX() 获取触摸点X轴坐标 getY() 获取触摸点Y轴坐标 getX(int pointerIndex)、getY(int pointerIndex) 在多点触控时获取对应手指的坐标 getRawX()、getRawY() 与getX()、getY()的区别是前者相对手机屏幕,后者相对当前控件 继续阅读
可以滑动的recyclerview CardItem、高效的Gif播放器、视觉差viewpager、自定义仪表盘、开源视频项目、GestureViews、图片选择库、Custome CoordinatorLayout、个性动态展示文字、基于materialDesign的开源项目 继续阅读
仿twitter like动画、android 动态加载技术系列、支持手势缩放的TextView、倾斜45°显示文字的lableView、类似于flowlayout的扩展、微博话题功能、富文本编辑器、为listView、gridView…添加阻尼效果、仿Tinder的卡片效果 继续阅读
版本号(version number)是版本的标识号。每一个操作系统(或广义的讲,每一个软件)都有一个版本号,有些童鞋对于版本号的定义规则或者当前版本号代表什么意思,升级开源库或者设置版本号应该规避那些问题可能只有一些模糊的概念,因此大概的描述下关于版本号定义的基础知识. 继续阅读