<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[roadProgram的专栏]]></title><description><![CDATA[一个程序员的路]]></description><link>https://blog.youkuaiyun.com/roadProgram</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; roadProgram]]></copyright><item><title><![CDATA[.zshrc和.bash_profile同时生效解决方案]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106976977</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106976977</guid><author>roadProgram</author><pubDate>Sat, 27 Jun 2020 00:02:47 +0800</pubDate><description><![CDATA[设置zsh自动提示后，发现之前配置的环境变量失效了，比如在调试android设备时，提示adb 不存在，执行source .bash_profile发现adb可以用，但是重新启动终端发现adb命令又失效了。

两种解决方案：

1、把.bash_profile里面配置的内容,copy到.zshrc里面，这样就可以找到adb命令

2、在.zshrc里面添加 source .bash_profile，也可以找到adb命令

特此标记！
...]]></description><category></category></item><item><title><![CDATA[Mac zsh Shell 添加自动提示]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106881265</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106881265</guid><author>roadProgram</author><pubDate>Sun, 21 Jun 2020 08:28:44 +0800</pubDate><description><![CDATA[查看shells

1、cat /etc/shells

修改shell

2、chsh -s /bin/zsh

3、安装.oh_my_sdh

git clone git://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh

4、vim .bash_profile

5、添加 export ZSH_CUSTOM=“/Users/xxx/.oh-my_zsh/custom"

6、安装zsh-autosuggestions

git clone gi.]]></description><category></category></item><item><title><![CDATA[React native 字体大小适配]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106821037</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106821037</guid><author>roadProgram</author><pubDate>Wed, 17 Jun 2020 23:59:13 +0800</pubDate><description><![CDATA[1、根据屏幕宽度比例适配

定义ratio_w =Dimensions.get('window').width / 375(按着750x1334出设计稿)

所有字体大小定义 * ratio_w进行适配。

2、字体大小不随着系统字体大小变化

2.1 设置Text/TextInput组件的allowFontScaling = false 属性

2.2 封装自定义CustomText/CustomTextInput组件，render 返回Text/TextInput组件，属性添加 allowFontS..]]></description><category></category></item><item><title><![CDATA[react native android 真机调试 not permitted by network security policy]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106821008</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106821008</guid><author>roadProgram</author><pubDate>Wed, 17 Jun 2020 23:48:17 +0800</pubDate><description><![CDATA[修改方法：

1、APP改用https请求

2、targetSdkVersion 降到27以下

3、更改网络安全配置

(1)在AndroidManifest.xml配置文件的&lt;application&gt;标签中增加（已经过验证，好用！！！）

android:usesCleartextTraffic=“true"
...]]></description><category></category></item><item><title><![CDATA[React Native WebView injectedJavaScript 报错window.postMessage]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106797941</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106797941</guid><author>roadProgram</author><pubDate>Tue, 16 Jun 2020 23:35:07 +0800</pubDate><description><![CDATA[解决方案：

定义injectedJavaScript


(function() {

 var originalPostMessage = window.postMessage;

 var patchedPostMessage = function(message, targetOrigin, transfer) {

 originalPostMessage(message, targetOrigin, transfer);

 };

 patchedPostMessage.toSt...]]></description><category></category></item><item><title><![CDATA[React Native 运行android项目遇到的问题以及解决方案]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106797833</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106797833</guid><author>roadProgram</author><pubDate>Tue, 16 Jun 2020 23:31:28 +0800</pubDate><description><![CDATA[最近升级Android Studio4.0后，在执行 react-native init test 命令后，用Android Studio 打开项目一直报错




Gradle sync failed: Uninitialized object exists on backward branch 142

Exception Details

Location:

com/android/build/gradle/internal/pipeline/VariantInfoImpl.&lt;init&gt.]]></description><category></category></item><item><title><![CDATA[react-native init 项目出现的问题]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106797695</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106797695</guid><author>roadProgram</author><pubDate>Tue, 16 Jun 2020 23:20:19 +0800</pubDate><description><![CDATA[This will walk you through creating a new React Native project in /Users/x'x'x/Desktop/ReactNativeWS/smstest

Using yarn v1.22.4

Installing react-native...

yarn add v1.22.4

info No lockfile found.

[1/4] ???? Resolving packages...

info There appears to]]></description><category></category></item><item><title><![CDATA[React Native Android(华为)手机调试 Mac环境]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106773004</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106773004</guid><author>roadProgram</author><pubDate>Mon, 15 Jun 2020 23:02:32 +0800</pubDate><description><![CDATA[调试问题：

华为手机

1、华为版本点击多次，弹出开发者模式

2、找到开发这模式，勾选USB调试

3、此时你会发现在Mac环境下Android Studio 以及使用 adb devices命令都查找不到链接的设备，有时候可能你会查到需要华为手机助手，但是下载后发现任然一点反应都没有，此时回到拨号页面，输入：＊＃＊＃2846579＃＊＃＊ ，选择USB模式，选择默认，这样在Android Studio上就会发现你心爱的设备了，用adb devices也可以看到了。

Could not get u..]]></description><category></category></item><item><title><![CDATA[Mac Charles 抓取数据包]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106742947</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106742947</guid><author>roadProgram</author><pubDate>Sun, 14 Jun 2020 10:38:18 +0800</pubDate><description><![CDATA[1、基于HTTP的数据抓取，一般情况下直接设置Proxy -&gt;Proxy Settings-&gt;Port (8888),然后应用于源，比如本身电脑上，直接开启Proxy-&gt;macOS Proxy 就可以

2、基于HTTPS的数据抓取


	Help -&gt; SSL Proxying -&gt;

	install Charles Root Certificate(本机电脑)

	install Charles Root Certificate in iOS Simulators
	
.]]></description><category></category></item><item><title><![CDATA[React Native FlatList优化]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106741257</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106741257</guid><author>roadProgram</author><pubDate>Sun, 14 Jun 2020 10:28:50 +0800</pubDate><description><![CDATA[众所周知React Native刷新控件一般都是采用setState,对于FlatList来说就要想办法减少item的渲染，采用shouldComponentUpdate自己定义什么情况下执行刷新，有时候可能会有这样的需求，指定某个item执行刷新，在React Native里面没有可以获取指定item的方式，只能在数据上做考虑，具体操作如下：

定义Item需要的数据源


export class ItemData{
    constructor(){
        //指定某种状态
       ]]></description><category></category></item><item><title><![CDATA[React Native 适配XCode11.3]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106652590</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106652590</guid><author>roadProgram</author><pubDate>Tue, 09 Jun 2020 22:34:46 +0800</pubDate><description><![CDATA[在下面那个目录，报错__attribute__ 不识别

node_modules/react-native/React/Base/RCTModuleMethod.mm

只需要找到当前类实现文件，找到RCTParseUnused函数，做以下修改


static BOOL RCTParseUnused(const char **input) {
 return 
    RCTReadString(input, "__attribute__((unused))") || 
    RCTReadStrin]]></description><category></category></item><item><title><![CDATA[nrm 基本使用]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106652489</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106652489</guid><author>roadProgram</author><pubDate>Tue, 09 Jun 2020 22:30:34 +0800</pubDate><description><![CDATA[nrm 是一个 npm源管理器，允许你快速地在 npm源间切换。

nrm安装



npm install -g nrm


简单记录下常用命令

设置npm淘宝源



npm set registry https://registry.npm.taobao.org/  



nrm ls 查看 npm源



nrm use xxx 使用源



nrm current 当前源



nrm add xxx url 添加私有仓储



sudo nrm add xx url 如果需要权限，就...]]></description><category></category></item><item><title><![CDATA[React Native Text多样式使用]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106596710</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106596710</guid><author>roadProgram</author><pubDate>Mon, 08 Jun 2020 23:28:45 +0800</pubDate><description><![CDATA[实现类似Objective-C里面NSMutableAttributedString的文字多样式的方法如下：


&lt;Text&gt;
    &lt;Text style={{color: "red"}}&gt;Hello&lt;/Text&gt;
    &lt;Text style={{color:"blue"}}&gt;World&lt;/Text&gt;
&lt;/Text&gt;

实现效果如下：



文本换行添加\n就可以，如下


&lt;Text&gt;
    &lt;Text s]]></description><category></category></item><item><title><![CDATA[React Native 技术点记录]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106631134</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106631134</guid><author>roadProgram</author><pubDate>Mon, 08 Jun 2020 23:26:25 +0800</pubDate><description><![CDATA[1、定时器

BackgroundTimer

setTimeout 延时回调 执行1次

setInterval 隔几秒调用1次，执行次数 不限

BackgroundTimer.setTimeout 返回一个number类型的数值，代表当前执行Timeout的ID

BackgroundTimer.setInterval 返回一个number类型的数值，代表当前执行Interval的ID

根据ID,在页面页面销毁时，记得执行clearTimeout clearInterval

2、在执行RN项an.]]></description><category></category></item><item><title><![CDATA[React Native环境问题与解决方案]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106294624</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106294624</guid><author>roadProgram</author><pubDate>Sat, 23 May 2020 21:52:17 +0800</pubDate><description><![CDATA[React Native中文网推荐使用Homebrew来安装Node和Watchman。

安装Homebrew时，可能会遇到翻墙，采用以下方式安装避免翻墙


/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

等Homebrew安装完成，就是可以安装Node和Watchman。

安装详情可以查看搭建开发环境

用npx react-native init 项目名称，来初始化项目，]]></description><category></category></item><item><title><![CDATA[Runtime-消息转发详解]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106257867</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106257867</guid><author>roadProgram</author><pubDate>Thu, 21 May 2020 23:07:46 +0800</pubDate><description><![CDATA[消息转发分为三步，详细分解如下：

第一步


+ (BOOL)resolveClassMethod:(SEL)sel OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);
+ (BOOL)resolveInstanceMethod:(SEL)sel OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);

第二步


- (id)forwardingTargetForSelector:(SEL)aSelector OBJC_AVAILABL...]]></description><category></category></item><item><title><![CDATA[Runtime-分类，修改私有属性，KVC]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/106106380</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/106106380</guid><author>roadProgram</author><pubDate>Wed, 13 May 2020 21:04:27 +0800</pubDate><description><![CDATA[1、字体适配思路

写个UIFont(category)，在category里面重写+(void)load方法，采用method_exchangeImplementations 进行方法替换，具体代码如下操作：


///自定义字体，缩放等相关适配信息
+ (UIFont *)custom_systemFontOfSize:(CGFloat)fontSize{
    //获取设备屏幕宽度，并计算出比例scale
    CGFloat width = [[UIScreen mainScreen] boun]]></description><category></category></item><item><title><![CDATA[ibd数据恢复]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/102465284</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/102465284</guid><author>roadProgram</author><pubDate>Wed, 09 Oct 2019 16:52:08 +0800</pubDate><description><![CDATA[1、准备好需要恢复的数据.ibd文件(保证与要恢复的表的名字一直)

2、如果在本地已经存在的数据库表中直接执行

ALTER TABLE &lt;table_name&gt; DISCARD TABLESPACE;

3、copy .ibd文件到数据库数据目录下

目录查找 /usr/local/var/mysql/（具体看安装的路径）下找到相应的数据库目录

4、导入

ALTER TABLE...]]></description><category></category></item><item><title><![CDATA[区块初探ETH]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/100746115</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/100746115</guid><author>roadProgram</author><pubDate>Wed, 11 Sep 2019 19:25:07 +0800</pubDate><description><![CDATA[下载 geth(注意查看磁盘空间)

https://geth.ethereum.org/downloads/

解压tar

新建json文件(genesis.json)

{

 "config": {

  "chainId": 2,

  "homesteadBlock": 0,

  "eip155Block": 0,

  "eip158Block": 0

 },...]]></description><category></category></item><item><title><![CDATA[部署jar包命令]]></title><link>https://blog.youkuaiyun.com/roadProgram/article/details/100746003</link><guid>https://blog.youkuaiyun.com/roadProgram/article/details/100746003</guid><author>roadProgram</author><pubDate>Wed, 11 Sep 2019 19:09:05 +0800</pubDate><description><![CDATA[查看进程

ps -ef|grep .jar/tomcat



关闭进程

kill -9 进程号



移除jar包

rm -rf *.jar



启动jar

nohup java -jar *.jar &amp;



实时查看日志

tail -1000f *.out
]]></description><category></category></item></channel></rss>