自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 资源 (1)
  • 收藏
  • 关注

原创 携程CRN源码详解之拆包(四)——业务打包

1、业务包 除了rn_common的包含业务逻辑的代码会被CRN打成业务包。CRN希望把业务包做得尽量地可以按需加载,因此CRN使用了metro本来就有的rambundle功能。rambundle在之前叫做unbundle,这种打包方式能把bundle按模块分散成多个独立的js文件,加载页面的时候只会加载需要的js文件,大大提升了页面的加载速度。2、打包命令 cmd = 'no...

2019-04-20 15:43:58 856 1

原创 携程CRN源码详解之拆包(三)——增量编译

1、增量编译 增量编译在这里指的是:打过一次js包后,后面再打包就会基于上次的打包基础打包。这里的基础指的是moduleId的map。crn-cli使用的是数字来代表module,rn_common包生成的文件都是0.js 1.js 2.js 3.js.... 业务包生成的文件都是666666.js 666667.js ..... ,而这些数字在rn中并不是固定的,比如在一次打包中rn_...

2019-04-19 02:22:52 966

原创 携程CRN源码详解之拆包(二)——rn_common打包

1、rn_common rn_common是crn所定义的框架包,rn_common包含了RN原来的框架和crn自己的基础框架。作为基础框架,rn_common会被上百个携程业务包共同使用,只有把框架代码抽取出来才能实现框架代码后台预加载功能,这样加载业务页面的时候只需要加载业务代码,大大减少加载时间。2、打包参数传递 上一节我们已经知道:打common包的时候会传递--b...

2019-04-19 02:22:45 968

原创 携程CRN源码详解之拆包(一)——总览

1、CRN开源 CRN是由携程无线平台研发团队基于React Native框架优化,定制成稳定性和性能更佳、也更适合业务场景的的跨平台开发框架。CRN是一整套框架,包含了拆包、加载流程框架、UI框架、平台统一框架,CRN的初衷是提升RN页面加载速度,在不断地优化后形成了CRN框架。因此性能是CRN的核心,而需要做到性能优化,就离不开CRN的根本——拆包。 本次CRN开源的主要是...

2019-04-19 02:22:31 2076

原创 React Native调试源码分析——Debuger

1、前言 我们都知道我们在调试的时候都会开一个chrome,在chrome的调试界面中打断点、看log,本节就主要了解以下Debuger模式下js代码是如何加载的、js代码如何更新、如何断点源码。2、App开启Debug模式 跟着Debug JS Remotely按钮走,直接上reloadJSInProxyMode函数//DevSupportManagerImpl.j...

2019-04-16 22:13:52 949

原创 React Native调试源码分析——HMR

1、前言 上次的远程加载简单描述了app reload(开发时运行也是一个逻辑)和MetroServer交互的流程,现在开始讲讲HMR,对应到RN调试界面中的Enable HotLoading,HMR全名为Hot Module Replacement。它能让你在修改代码后马上在app上展现结果而且不会丢失状态。2、HMR通讯方式 先看其创建的位置,也是在runServer中...

2019-04-16 15:00:17 565

原创 React Native调试源码分析——远程代码加载

1、前言 最近一直思考着如何让react native开发时分步加载js代码,而RN本身就有支持类似的功能,比如hot reload,而hot reload是根据文件的变化而进行差量加载代码的,如果需要实现分步加载的功能,就需要魔改react native相关的加载源码,因此经过几天的研究,总体了解了React Naitve调试过程中的流程,现分享给需要魔改或者了解相关源码的同学们。...

2019-04-15 22:18:34 1213

原创 React native拆包之 原生加载多bundle(iOS&Android)

在这之前已经描述了0.57版本的react native如何拆包:https://blog.csdn.net/tyro_smallnew/article/details/83088216(React native拆包的正确姿势),对于原生如何加载多个js包的方法只是简单的描述下,现在开始补坑。0、rn之jsbundle    当然我们都知道jsbundle是什么(就是我们打包出来的js包,...

2018-11-02 22:14:14 9217 9

原创 React native拆包的正确姿势——基于metro bundle

1、分包  观察现在一些接入React native的大厂,如菜鸟、大搜车、去哪儿,都将react native 的jsbundle分为几个包来使用。作用是啥?为什么要这么折腾?像去哪儿、腾讯或者携程都发布了一些文章来阐述分包的原因了,不了解的可以去搜索看看。我这边只总结下:react native原生打出来的包都只有一个jsbundle(除了rambundle),里面包含了所有你写代码和re...

2018-10-16 15:16:03 9389 12

原创 Android P阻止调用非sdk api后,Atlas该何去何从

0、背景    自从Android 9.0后,Android就已经开始着手阻止app开发调用非sdk的api,也就是被标记为@hide的变量、函数、类不可以通过反射调用,否则会提示NoSuchMethod异常1、对atlas影响   atlas有许多调用都是通过反射系统api来完成的,其中不乏被标记为@hide的类,比如用来处理插件资源的android.content.res.AssetManag...

2018-05-27 12:59:56 7470 1

原创 BitmapCanary——自动检测bitmap是否超过view的大小

1、BitmapCanary的由来   我们开发Android app的时候都会用到drawable文件夹,使用drawable文件夹来放置我们需要的ui图片。   有经验的开发都知道什么大小的图片应该放置到哪个drawable文件夹中,具体文件夹规则如下DPI主流分辨率目录密度0dpi ~ 120dpi240x320 240x400drawable-ldpildpi120dpi ~ 160dpi...

2018-05-12 13:28:12 942

原创 Android 如何提前知道fling velocity的距离、时间 根据滑动距离得到velocity

Android 如何提前知道fling velocity的距离、时间 根据滑动距离得到velocity

2017-01-19 11:28:31 6271

原创 如何fling一个ListView

如何做到Android各个版本中做到ListView的fling

2017-01-19 10:58:17 922

原创 Java中字符串相加什么姿势性能最好(Android平台)

1、背景 话说jdk1.5以前字符串拼接如果使用“+”号时会消耗性能和内存,因为每次使用“+”号编译的时候都会转换出多个String对象(String对象是不可变的),所以都推荐使用StringBuilder。而jdk1.5之后,编译器对“+”号做了改进,会自动转换成StringBuilder再构造String对象,使得字符串拼接变得更方便,然而就代表着程序员可以随便使用"+"号而不考虑...

2019-04-13 22:50:37 769

原创 React native 可视化拆包

1、来源 前提是使用metro配置来拆包,可以在之前的博客先了解下:https://blog.csdn.net/tyro_smallnew/article/details/83088216如果是简单的基础包中包含各种第三方组件、业务包只包含自己写的业务代码情况下的拆包,很简单地使用命令行就可完成拆包。但有些时候业务包也会包含了第三方组件,比如只有一个业务包中使用了第三方日历组件而其他...

2019-03-04 23:51:35 1051

原创 如何减少Code Push的更新包大小

1、code push的更新包逻辑  发布codepush更新的时候使用的命令行一般是这样的:code-push release YourApp ./your_jsbundle_and_imgs/ 3.0.0 --des "TEST code Push"这个命令行上传了个3.0.0版本的目录上去,而这个目录会包含你的jsbundle和许多图片,假设当前3.0.0版本的文件如下:...

2018-11-25 14:07:24 893 1

原创 什么?!大Atlas亡了

大Atlas!   Atlas是阿里巴巴在2016年推出的经过市场考验的最强插件化开发工具,一经推出,同花顺的同事们都连连叫好:atlas大法好啊,阿里巴巴大法好啊,那个时候也迫不及待地去开始使用,确实是现在最好的插件化工具,没有之一。插件化能帮你做的atlas几乎都给你想好了!壮哉大Atlas OrzAtlas被支付宝弃用  现在换了家公司,在阿里系上班,闲来偶尔来看望看望大atla...

2018-10-27 15:57:04 1751

原创 支付宝福卡破解——咻一咻的ui怎么实现

支付宝 Android 端 咻一咻的实现方式

2016-02-26 00:02:09 1145

原创 支付宝福卡破解——居中的ViewPager

这是支付宝 福卡模块 Android端的福卡容器破解分享,主要是一个居中的ViewPager

2016-02-25 23:25:30 2413 1

原创 模仿美团下拉刷新

改自Taurus源代码地址

2015-12-27 11:17:10 467

原创 Android 新support库大集结

Android近两年推出了许多新的Support,里面不缺一些实用流行的控件,一些新的控件都是遵循谷歌的材料设计,以下一一说明:源代码地址: https://github.com/smallnew/android-support-demo   一、RecycleView    新suuport里最实用的控件,完全可以取代ListView和GridView,主要有这几点特性:1、Re

2015-12-26 21:20:37 483

原创 SlidingMenu接入时提示The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolve

The type android.support.v4.app.TaskStackBuilder$SupportParentable cannot be resolved.这个错误主要原因是由于两个项目都有supportv4但是两个项目v4版本不一样导致的,SlidingMenu的情况是:SlidingMenu内已经有了一个v4,但是我们自己项目也有了adt自带的v4,出现这个情况时,

2015-01-13 17:27:47 2271

原创 微信sdk接入时点击没反应的问题

我遇到的有两种情况1、使用官方例子,没有使用官方的keystore来签名,密码都是”android"2、使用官方例子,没有事先注册到app3、比较特殊的情况,你先写了个ap用使用官方的keystore来签名,同时去微信开放平台也对这个包名注册了一个appid,当注册成功后你的app就再使用官方的keystore来签名就会点击没反应

2015-01-12 14:16:50 792

原创 nutch编译的时候下载文件卡死的解决方案

刚接触nutch,准备编译就卡在了下载这一块,经常停在了[ivy resolve] downloading http://.........jar这时可以先ctrl+c然后把下载的链接直接复制到浏览器然后复制到ivy文件夹里面,再重新ant build用浏览器下载比较不容易卡住,如果浏览器也卡住了那就暂停下载再开始,多试几次就成功了

2014-12-01 17:40:35 764

hbase-0.90.4

由于官网下载是在太慢了放一个给大家用,nutch指定版本

2014-12-02

空空如也

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

TA关注的人

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