iOS App卡顿监控(Freezing/Lag)

2019-02-05
阅读 4 分钟
6.7k
如何判断主线程卡顿: 监测NSRunLoop耗时情况。 NSRunLoop的调用主要在kCFRunLoopBeforeSources和kCFRunLoopBeforeWaiting之间,以及kCFRunLoopAfterWaiting之后。因此,若是发现这个两个时间内耗时过长,就可以判定此时主线程出现卡顿情况。

后端架构演进

2017-08-07
阅读 2 分钟
3.8k
后端架构演进 在公司已经走过很多个年头,有幸能够亲手去创造架构组,甚至带领团队去完成部分架构的调整,验证架构的想法。希望能够得到大牛们的一些指引。 1.0 时代 传统的 LNMP 架构,杂乱的应用体系,数不清的坑。单体应用的情况下还可以接受,一旦业务发展速度加快,人员不到位,就可能出现这种情况。 这个结构相当...

一句代码实现Android版本更新功能

2017-07-13
阅读 9 分钟
4.4k
第三步,版本升级分为三种情况:非wifi情况下,弹出版本更新提示框,用户点击“立即升级”按钮开始下载apk,下载完成后提示安装。wifi情况下,直接后台下载apk,下载完后弹出版本更新提示框,用户点击“立即安装”按钮开始安装apk。

java的观察者模式

2017-07-13
阅读 5 分钟
2k
Java里面的观察者模式,是一个非常经典的模式,经常在开发中被用到,掌握了这个思想,我相信对于一些开发,受益是匪浅的;鄙人也是觉得比较不错,所以发表一点自己的总结,如果对还处于迷茫的你有稍微的帮助的话,鄙人很高兴;下面就让我们共同的理解一下:

Android内存优化(二):一分钟发现内存泄漏

2017-07-13
阅读 6 分钟
3.4k
在上一篇文章Android内存优化(一):Java内存区域中已经大体上介绍了Java中的内存分布情况,这一篇主要讲一下内存泄漏的产生原因、内存泄漏的危害、内存泄漏一键分析与定位、以及代码中常见的内存泄漏。1内存泄漏的产生原因

Android内存优化(一):Java内存区域

2017-07-13
阅读 3 分钟
2k
最近一段时间需要对项目的内存进行优化,因为项目比较老,代码经过很多手,导致应用在使用过程中有较为严重的内存泄漏,在某些情况下还会出现OOM,简直是不能忍,所以简单记录一下从入门到放弃的过程,就当做是学习和总结。

Android里面的Attr、Style和Theme 解析

2017-07-13
阅读 4 分钟
4.8k
前言 {代码...} 参考资料:Android 开发之 Theme、Style 探索及源码浅析概念说明 Attr:属性,风格样式的最小单元; Style:风格,它是一系列Attr的集合用以定义一个View的样式,比如height、width、padding等; Theme:主题,它与Style作用一样,不同于Style作用于个一个单独View,而它是作用于Activity上或是整个应用...

Android的资源管理器的创建过程

2017-06-01
阅读 19 分钟
3k
最近在研究Android的插件化,插件化需要解决的问题大概有这样的几个,为什么需要插件化技术这个就不说啦。 资源访问 组件的生命周期的管理 参考:Android资源管理框架(Asset Manager)简要介绍和学习计划Android应用程序的Activity启动过程简要介绍和学习计划Android源码分析-Activity的启动过程 这篇文章浅解一下Androi...

Android中使用Java8特性之Lambda

2017-06-01
阅读 2 分钟
2.7k
早在几年前,Java8就已经发布了正式版本,可是到现在为止,在Android的开发中,大部分人还是一直使用的是Java6和Java7的属性和方法,这使得有时候在开发过程中难免会出现一些问题。

动态化加载未安装的apk

2017-05-27
阅读 4 分钟
6.5k
然后要想到的问题就是要怎么获取到apk的包信息,因为现在要的是获取未安装apk的资源,无法通过createPackageContext(…);方法来构建出一个context,所以这时只有在Resource上下功夫

使用ARouter实现组件化

2017-05-27
阅读 9 分钟
14k
ARouter是阿里在github上面的一个开源项目,地址是:ARouter 本文不是重点分享ARouter的使用,而是分享使用ARouter如何去组件化。关于它的详细使用,大家可以看文档以及加群向询问。关于如何编写一个路由实现组件化,推荐看我同事的一篇文章手把手教你写Router框架入门篇

Android多线程总结

2017-05-27
阅读 3 分钟
3.5k
是不是第一时间想到就是写两个线程就完事了?上面的解决方案弊端很明显是吧~,~囧。线程无法得知另一个线程的状态解决方案:三个线程,两个线程同时执行,一个线程等待,先完成的等待未完成的一个,直到都完成了才执行等待的线程,这TM就是题目好吗。看到解决方案,你们或许会说这还不简单,等待线程写个while()不就行了...

Android百分比布局

2017-05-27
阅读 3 分钟
3.5k
PercentRelativeLayout、PercentFrameLayout,通过名字就可以看出,这是继承自FrameLayout和RelativeLayout两个容器类;

CAEmitterLayer实现烟花动画效果

2017-05-21
阅读 6 分钟
4.6k
CAEmitterLayer是CALayer的一个子类,和CAEmitterCell一起使用可以创造出多样的动画效果。CAEmitterLayer的属性:

iOS10.3的新玩意儿

2017-04-27
阅读 2 分钟
2.6k
0. app store评分弹框 话不多说,直接上代码,很简单。先 {代码...} 一句话调用 {代码...} 展示效果如图: 点击效果: 番外:文档还写了另一种方法,Deep-Link即在你的app链接地址后面加上“action=write-review”来直接打开评论页面,上代码: {代码...} 效果如下: PS:只支持打分,不支持写评论。据说一年只允许弹两次...

Lottie 读取 JSON 文件实现动画

2017-04-26
阅读 4 分钟
17.9k
Lottie 是 Airbnb 开源的一个动画项目,它支持 iOS, mac OS Android RN,由于某些复杂动画的实现,往往会写很多的 code 来实现它,而且调试动画的效果会比较花费时间。用它来解决某些动画会带来很大的便利。

Swift: 可变参数

2017-04-26
阅读 3 分钟
3.4k
使用可变参数,其实很简单。就是在参数类型加上…。比如Int…。实际上,方法内部去调用该参数的话,Xcode提示的是[Int]。也就是一个Array。这样也是大大方便。不用非得去声明一个[Int]。

初探 Perfect : Swift 服务端编程

2017-03-17
阅读 3 分钟
2.8k
首先要创建一个项目。操作系统的环境是 mac OS。在安装了 Xcode 8 之后会有 Swift 的编译器了,这里我们的环境是 mac OS, 所以 Linux 环境要自己去安装 Swift 相关的环境,通过命令可以查看 Swift 的版本:

Android的WebView的使用及JS调用

2017-03-10
阅读 10 分钟
5k
如果本文帮助到你,本人不胜荣幸,如果浪费了你的时间,本人深感抱歉, 希望能对您所有帮助! 随着H5的应用越来越潮流,与原生交互必然也是一种趋势,然后自己从中学点皮毛,再次总结了一点心得。 学习一个新的首先要懂得其Api里面的方法,接下来浅谈一下; 加载网页: {代码...} WebSettings: {代码...} 5.0以后http和h...

简单几行代码申请权限

2017-03-10
阅读 6 分钟
3.3k
众所周知,在Android6.0以上增加了动态申请权限这玩意(targetSdkVersion >= 23)。那么问题来了,what?when?how?

CAEmitterLayer和CAEmitterCell的基本用法

2017-03-06
阅读 3 分钟
6.1k
2、CAEmitterCell 单个粒子的原型,通常有多个,根据cell的属性和CAEmitterCell的配置,由uikit随机生成,粒子原型的属性包括粒子的图片,颜色,方向,运动,缩放比例和生命周期等。

UILocalizedIndexedCollation——本地化索引排序

2017-03-03
阅读 3 分钟
4.6k
独爱系统API,做一个拒绝自定义功能的程序员,产品的奇葩需求都一边去吧 UILocalizedIndexedCollation——本地化索引排序 需求点: 常见通讯录基本功能,按首字母或者汉字拼音首字母分组排序索引。 需要解决的问题: 1、本地化,世界语言那么多,你都认识吗?大部分人都是这样的一种状态吧:它认识我,可我不认识它啊。 2...

hook实例函数与类函数的不同点。

2016-10-19
阅读 3 分钟
4.3k
实例函数和类函数,主要不同点在于class_getInstanceMethod和class_getClassMethod,下面是hook类函数的写法。