<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[郝捷的专栏]]></title><description><![CDATA[劝君莫惜金缕衣，劝君惜取少年时。]]></description><link>https://blog.csdn.net/anthony_3</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; anthony_3]]></copyright><item><title><![CDATA[RN拆包解析]]></title><link>https://blog.csdn.net/anthony_3/article/details/103977161</link><guid>https://blog.csdn.net/anthony_3/article/details/103977161</guid><author>anthony_3</author><pubDate>Tue, 14 Jan 2020 17:40:28 +0800</pubDate><description><![CDATA[一. 拆包动机
RN作为非常优秀的移动端跨平台开发框架，在近几年得到众多开发者的认可。国内各大厂采用在当前原生应用内集成RN的方式，使得App应用的灵活性得到了很大的提升。在原生应用内嵌入RN，就是需要在原生应用内加载RN模块（1个或多个JSBundle），并得以显示。JSBundle中包含了当前RN模块的js代码。如果存在多个RN模块需要被加载时，就需要分别打出多个JSBundle，并且多个JS...]]></description><category></category></item><item><title><![CDATA[原生RN与58RN启动流程分析]]></title><link>https://blog.csdn.net/anthony_3/article/details/103977149</link><guid>https://blog.csdn.net/anthony_3/article/details/103977149</guid><author>anthony_3</author><pubDate>Tue, 14 Jan 2020 17:39:47 +0800</pubDate><description><![CDATA[一.原生加载流程
我们知道RN的页面也是依托Activity，React Native框架里有一个ReactActivity，它就是我们RN页面的容器。ReactActivity里有个ReactRootView，正如它的名字那样，它就是
ReactActivity的root View，最终渲染出来的view都会添加到这个ReactRootView上。ReactRootView调用自己的startR...]]></description><category></category></item><item><title><![CDATA[ReactNative fetch源码分析]]></title><link>https://blog.csdn.net/anthony_3/article/details/103977133</link><guid>https://blog.csdn.net/anthony_3/article/details/103977133</guid><author>anthony_3</author><pubDate>Tue, 14 Jan 2020 17:38:51 +0800</pubDate><description><![CDATA[原生分析的是安卓端
核心代码
//react-native/vendor/core/wehatwg-fetch.js
self.fetch = function(input, init) {
    return new Promise(function(resolve, reject) {
      var request = new Request(input, init);
      v...]]></description><category></category></item><item><title><![CDATA[RN对性能监控的思考及工具分享]]></title><link>https://blog.csdn.net/anthony_3/article/details/103976838</link><guid>https://blog.csdn.net/anthony_3/article/details/103976838</guid><author>anthony_3</author><pubDate>Tue, 14 Jan 2020 17:24:35 +0800</pubDate><description><![CDATA[分享内容

全局属性Context
性能监控
debug工具

一.全局属性Context
1.概念
当你不想在组件树中通过逐层传递props或者state的方式来传递数据时，可以使用Context来实现跨层级的组件数据传递。

上图，使用props或者state传递数据，数据自顶下流。

使用Context，可以跨越组件进行数据传递。
使用Context
如果要Context发挥作用，需要用到两...]]></description><category></category></item><item><title><![CDATA[RN bundle自动化静态扫描]]></title><link>https://blog.csdn.net/anthony_3/article/details/103976815</link><guid>https://blog.csdn.net/anthony_3/article/details/103976815</guid><author>anthony_3</author><pubDate>Tue, 14 Jan 2020 17:23:48 +0800</pubDate><description><![CDATA[背景
起因是在排查公寓找室友bundle过大问题时，发现house-middle-sdk体积异常，逐个删减引用得出结论是引用了node-forge库导致，通过这次手动排查经历演化出做一个bundle自动化静态扫描的想法。
介绍
安装

npm i house-cli -g

使用
根目录添加metro.config.js文件
//里面引用全局路径（这个后面优化一下）
module.exports ...]]></description><category></category></item><item><title><![CDATA[react-native metro 分析]]></title><link>https://blog.csdn.net/anthony_3/article/details/103976673</link><guid>https://blog.csdn.net/anthony_3/article/details/103976673</guid><author>anthony_3</author><pubDate>Tue, 14 Jan 2020 17:17:38 +0800</pubDate><description><![CDATA[文章目录前言概念ResolutionTransformationSerialization打包方式MoudlesPlain bundleIndexed RAM bundleFile RAM bundle流程前置流程resolve流程Transformer流程序列化流程缓存为什么要缓存缓存的请求与缓存Metro配置结构
前言
metro是一种支持ReactNative的打包工具，我们现在也是基于他来...]]></description><category></category></item><item><title><![CDATA[老生常谈MVP架构]]></title><link>https://blog.csdn.net/anthony_3/article/details/80048090</link><guid>https://blog.csdn.net/anthony_3/article/details/80048090</guid><author>anthony_3</author><pubDate>Mon, 23 Apr 2018 11:23:18 +0800</pubDate><description><![CDATA[原生框架问题由于原生 Android 开发应该已经是一个基础的 MVC 框架，所以在初始开发的时候并没有遇到太多框架上的问题，可是一旦项目规模到了一定的程度，就需要对整个项目的代码结构做一个总体上的规划，最终的目的是使代码可读，维护性好，方便测试。
  只有项目复杂度到了一定程度才需要使用一些更灵活的框架或者结构，简单来说，写个 Hello World 并不需要任何第三方的框架]]></description><category></category></item><item><title><![CDATA[ReactNative入门-用webstorm调试]]></title><link>https://blog.csdn.net/anthony_3/article/details/79040239</link><guid>https://blog.csdn.net/anthony_3/article/details/79040239</guid><author>anthony_3</author><pubDate>Fri, 12 Jan 2018 09:09:04 +0800</pubDate><description><![CDATA[目的之前一直用chrome调试，一个是不习惯前端调试方法，毕竟是android 出身嘛还是习惯IDE调试，还有就是源码位置总要滑到底才能找到，很麻烦。突然发现ReactNative也能用IDE调试真是喜出望外啊，将配置和调试方法记录一下。IDE设置首先配置项，点击Edit Configurations然后配置react native启动项 
其中有几点说明一下]]></description><category></category></item><item><title><![CDATA[android nexus私服的使用]]></title><link>https://blog.csdn.net/anthony_3/article/details/78715481</link><guid>https://blog.csdn.net/anthony_3/article/details/78715481</guid><author>anthony_3</author><pubDate>Tue, 05 Dec 2017 00:35:25 +0800</pubDate><description><![CDATA[先唠叨几句啊，由于公司私服已经搭好了我就不费那劲琢磨搭建私服的事了，直接开撸上传lib。下图是我放组件库的地方，本来想一个module拉出一个项目来维护，后来想想实在是麻烦，同时维护多个库就要down多个库下来，于是就统一管理了。当然统一维护module多了自然会影响编译的速度，可以在settings.gradle 里将不编译的module注释掉就可以了。现在就有图片选择、表情、输入框、星星、视频录]]></description><category></category></item><item><title><![CDATA[todo-mvvm-databinding源码分析]]></title><link>https://blog.csdn.net/anthony_3/article/details/78660538</link><guid>https://blog.csdn.net/anthony_3/article/details/78660538</guid><author>anthony_3</author><pubDate>Tue, 28 Nov 2017 23:36:07 +0800</pubDate><description><![CDATA[目的分析和学习官方mvvm框架的设计模式和数据绑定在其中的具体用法，制作一套符合当前公司业务场景的mvvm框架。其中也分析一下数据源在项目中的设计以及框架中单元测试的实施。设计模式MVVM框架中的ViewModel相比MVP框架中的Presenter起着类似的作用。两种框架结构的不同之处在于View分别与ViewModel或Presenter进行通信]]></description><category></category></item><item><title><![CDATA[Data binding 入坑笔记三layout表达式详解]]></title><link>https://blog.csdn.net/anthony_3/article/details/78590514</link><guid>https://blog.csdn.net/anthony_3/article/details/78590514</guid><author>anthony_3</author><pubDate>Tue, 21 Nov 2017 17:23:10 +0800</pubDate><description><![CDATA[Data binding 入坑笔记一入门篇 
Data binding 入坑笔记二进阶篇之双向绑定
  前两篇介绍了基础知识和双向绑定，今天我们来详细剖析一下layout语法规则，以便能灵活使用data binding]]></description><category></category></item><item><title><![CDATA[Data binding 入坑笔记二进阶篇之双向绑定]]></title><link>https://blog.csdn.net/anthony_3/article/details/78576700</link><guid>https://blog.csdn.net/anthony_3/article/details/78576700</guid><author>anthony_3</author><pubDate>Sun, 19 Nov 2017 20:23:49 +0800</pubDate><description><![CDATA[Data binding 入坑笔记一入门篇
  上一篇介绍了Data binding的基础用法，你可能会想这也太基础了，只支持前置数据的绑定，一旦数据变化了UI都监听不到。不要着急，这一篇就来讲到databinding的双向绑定用法。]]></description><category></category></item><item><title><![CDATA[Data binding 入坑笔记一入门篇]]></title><link>https://blog.csdn.net/anthony_3/article/details/78575791</link><guid>https://blog.csdn.net/anthony_3/article/details/78575791</guid><author>anthony_3</author><pubDate>Sun, 19 Nov 2017 18:17:35 +0800</pubDate><description><![CDATA[数据绑定已经推出两年多的时间了，是时候下一波水了，边学习边记录一下实战步骤以及踩过得一些坑。]]></description><category></category></item><item><title><![CDATA[Android Studio3.0新特性]]></title><link>https://blog.csdn.net/anthony_3/article/details/78528430</link><guid>https://blog.csdn.net/anthony_3/article/details/78528430</guid><author>anthony_3</author><pubDate>Tue, 14 Nov 2017 11:06:54 +0800</pubDate><description><![CDATA[Android Studio是Android开发的官方IDE，包含构建Android应用程序所需的一切。要获取最新版本，请单击帮助>检查更新（在Mac上，Android Studio>检查更新）。3.0（2017年10月）Android Studio 3.0.0是一个主要版本，包括各种新功能和改进。
  macOS用户：如果您正在更新旧版本的Android 
  Studio，则可能会遇到一个更新错]]></description><category></category></item><item><title><![CDATA[Android中AOP实践之三AspectJ解析篇]]></title><link>https://blog.csdn.net/anthony_3/article/details/78509812</link><guid>https://blog.csdn.net/anthony_3/article/details/78509812</guid><author>anthony_3</author><pubDate>Sun, 12 Nov 2017 16:25:40 +0800</pubDate><description><![CDATA[介绍AspectJ是Java的一个简单实用的面向方面的扩展。通过几个新的构造，AspectJ提供了对一系列横切关注的模块化实现的支持。在现有的Java开发项目中采用AspectJ可能是一个简单而且增量的任务。一条路径是从开发方面开始，继续使用生产方面，然后在使用AspectJ建立经验之后再使用方面。采用也可以遵循其他途径。例如，一些开发人员将从马上使用生产方面受益。]]></description><category></category></item><item><title><![CDATA[Android中AOP实践之二场景篇]]></title><link>https://blog.csdn.net/anthony_3/article/details/78492497</link><guid>https://blog.csdn.net/anthony_3/article/details/78492497</guid><author>anthony_3</author><pubDate>Thu, 09 Nov 2017 18:13:37 +0800</pubDate><description><![CDATA[上一篇介绍了切面编程AOP的概念，这一篇来讲讲常用的场景，在项目应用中可以分为通用场景和业务场景两种。其中通用场景我用到了日志输出、方法计时、异步操作、异常拦截、动态权限等，业务场景用到了登录验证和单次点击。整个AOP编程是基于aspect实现的，至于实现原理我想放到下一篇再讲。]]></description><category></category></item><item><title><![CDATA[Android中AOP实践之一概念篇]]></title><link>https://blog.csdn.net/anthony_3/article/details/78470499</link><guid>https://blog.csdn.net/anthony_3/article/details/78470499</guid><author>anthony_3</author><pubDate>Tue, 07 Nov 2017 17:50:10 +0800</pubDate><description><![CDATA[在说AOP之前先来说说java最经典的OOP（面向对象编程），我们通过面向对象的封装思想把同一类事物的共性归为一类中，方便我们统一管理。比如我们会把汽车的轮子，发动机，车身喷漆都放在汽车这个类中。这样的好处是良好的封装能够减少耦合，隐藏信息实现细节。但是试想一下如果每个类中有没有重复调用的代码呢？比如日志输出、缓存处理。这里就需要用到AOP思想了。
什么是AOP编程]]></description><category></category></item><item><title><![CDATA[Android原生项目转RN项目步骤]]></title><link>https://blog.csdn.net/anthony_3/article/details/78181665</link><guid>https://blog.csdn.net/anthony_3/article/details/78181665</guid><author>anthony_3</author><pubDate>Mon, 09 Oct 2017 13:32:49 +0800</pubDate><description><![CDATA[Android原生项目转RN项目]]></description><category></category></item><item><title><![CDATA[集成到现有原生Android应用错误集锦]]></title><link>https://blog.csdn.net/anthony_3/article/details/78134729</link><guid>https://blog.csdn.net/anthony_3/article/details/78134729</guid><author>anthony_3</author><pubDate>Fri, 29 Sep 2017 15:58:14 +0800</pubDate><description><![CDATA[ps: 坑多的有点过分啊亲~错误1变更sdk目录后adb找不到 
解决方案：修改ANDROID_HOME
错误2react-native run-android Android project not found 
解决方案：   应该在根目录执行转换
将项目名改为android
setting中加rootProject.name = 'MyappProject'
错误3curl指令找不到 
解决方]]></description><category></category></item><item><title><![CDATA[android项目分层解析]]></title><link>https://blog.csdn.net/anthony_3/article/details/77969396</link><guid>https://blog.csdn.net/anthony_3/article/details/77969396</guid><author>anthony_3</author><pubDate>Wed, 13 Sep 2017 18:22:56 +0800</pubDate><description><![CDATA[整体分层结构整体分为app和base两个层，app层作为项目的业务层，里面所有的分包都和当前业务相关。base层作为项目的框架层。业务与框架层级分离的好处：
可以让我们更专注于业务的开发
可以快速集成新的项目
方便每个项目在原有框架上做快速的更新迭代
业务层分层解析业务层内的基本分包是固定结构，因为每个项目都会有这些元素。因为富文本编辑器在互动讨论项目是重点，所以这里加上了一个editor包来统一管]]></description><category></category></item></channel></rss>