IvanFanWu


  • 首页

  • 分类

  • 归档

  • 关于

Weex 源码分析和实践总结

发表于 2018-08-03 | 分类于 跨平台 , Weex
用 Weex 跨平台框架完全开发一款 APP,终端只搭建基础能力,前端完成所有 UI 界面和业务开发。所以接下来总结使用 Weex 开发过程中的一些心得。 Weex 介绍Weex 是一个使用 Web 开发体验来开发高性能、可扩展的原生应用的框架。使用 Vue、Rax 为上层框架,遵循 W3C 标准实现了统一的 JSEngine 和 DOM API,并用同 ...
阅读全文 »

Lottie 动画原理剖析

发表于 2018-07-01 | 分类于 Android
Lottie 是什么Lottie 是 Airbnb 开源的一个动画渲染库,它可以解析 Adobe After Effects 使用 Bodymovin 插件把做的动画导出的 json 文件,并在 Android/iOS、React Native 和 web 端实现相同的动画效果。 简单来说,设计师可以使用 After Effects 制作动画,经由 Lot ...
阅读全文 »

内存泄漏

发表于 2018-03-18 | 分类于 Android , 性能优化
内存泄漏是 Android 开发常见的一类痛点问题,使用不当会有严重的性能影响,所以本文主要分析在开发过程中如何简单的进行内存泄漏检测,以及经常遇见的内存泄漏案例,最后借助手 q 的 LeakCanary 来分析内存泄漏检测的原理。 内存泄漏在 Android(Java)平台上,对象是通过 GC(Garbage Collection,垃圾收集器)来回收内 ...
阅读全文 »

Java crash 异常分析

发表于 2018-01-13 | 分类于 Java
Java 异常异常是指阻止当前方法或作用域继续执行的问题。当异常发生时,它会强制终止程序运行,记录异常信息并进行反馈。Java 为我们提供了非常完善的异常机制来保证程序的正常运行,其异常类层次结构如下图所示: Throwable 是 Java 中所有异常的基类。它分为俩大类:Error(错误)和 Exception(异常)。 Error(错误):是程序无法 ...
阅读全文 »

Collections.sort() 出现 IllegalArgumentException?因为它:TimSort

发表于 2017-12-16 | 分类于 算法
使用 Collections.sort() 对 ArrayList 数组进行排序时,偶现了 IllegalArgumentException 异常,于是追根溯源,对使用的排序算法-TimSort,出现异常的原因及其解决方案进行了如下的总结。 在灰度期间,上报了一个排序的 bug,如下所示: 1234567java.lang.IllegalArgument ...
阅读全文 »

UML 及 StarUML

发表于 2017-10-14 | 分类于 UML
在阅读代码过程中,我们经常会使用 UML 来快速地分析和总结,其中最常用到的便是类图和时序图了,但有时会被类之间的关系搞得迷糊,如聚合、组合,依赖等。所以本文主要总结下类之间的关系和使用 StarUML 画复杂的时序图。 UMLUML:统一建模语言(Unified Modeling Language)。在 UML 系统开发中有三个主要的模型: 功能模型 ...
阅读全文 »

ANR 问题分析

发表于 2017-09-24 | 分类于 Android , 性能优化
ANR 是什么ANR: Application Not Responding。 ANR 通常由以下三种情形产生: Key Dispatching Timeout:输入事件超过 5s 无响应,比如按键或触摸事件。 Broadcast Timeout:比如前台广播在 10s (后台广播 60s)内无法完成 onReceive 的执行。 Service Time ...
阅读全文 »

Android 进程保活

发表于 2017-09-23 | 分类于 Android
Android 进程特性Android 进程优先级在 Android 系统中,当内存不足时,为了新建进程或运行更重要的进程,会根据进程的优先级选择杀掉不那么重要的进程。进程的优先级如下所示: 前台进程 与用户正在交互的 Activity(即已调用 Activity 的 onResume() 方法) 正在执行 onReceive() 方法的 Broadcas ...
阅读全文 »

Java 和 Native 通信

发表于 2017-09-16 | 分类于 Android , JNI
在 Android 开发过程中,有时为了提升算法效率,往往采用 JNI 的方式调用 C/C++ 程序,这里主要总结了 Java 调用 Native 和 Native 调用 Java 的交互方式和实现原理。 Java 调用 Native加载动态库Android 虚拟机为每个进程分配一个 JavaVM 实例,在 Java 层中通过如下方式加载动态库: 123 ...
阅读全文 »

Hello Hexo

发表于 2017-09-08 | 分类于 Hexo
Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask ...
阅读全文 »
123
IvanFanWu

IvanFanWu

29 日志
18 分类
53 标签
GitHub E-Mail
© 2016 — 2024 IvanFanWu
访客数:
| 访问量:
粤ICP备18126196号