<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[写代码的林克]]></title><description><![CDATA[唯不争，故天下莫能与之争]]></description><link>https://blog.youkuaiyun.com/bingjianIT</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bingjianIT]]></copyright><item><title><![CDATA[React Native新架构系列-C++实现跨平台Turbo Native Module]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/141234606</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/141234606</guid><author>bingjianIT</author><pubDate>Fri, 16 Aug 2024 09:15:34 +0800</pubDate><description><![CDATA[今天我们介绍在React Native新架构中如何C++代码实现一个跨平台的C++ Turbo Native Module扩展API。]]></description><category></category></item><item><title><![CDATA[React Native新架构系列-自定义Turbo Native Module扩展API]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/140969605</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/140969605</guid><author>bingjianIT</author><pubDate>Wed, 07 Aug 2024 01:57:57 +0800</pubDate><description><![CDATA[今天我们介绍在React Native新架构中如何自定义Turbo Native Module扩展API。]]></description><category></category></item><item><title><![CDATA[使用Android Studio For Platform阅读&调试AOSP源码]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/140784368</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/140784368</guid><author>bingjianIT</author><pubDate>Wed, 31 Jul 2024 08:00:00 +0800</pubDate><description><![CDATA[本文我们使用Android官方提供的IDE（Android Studio For Platform）来打开AOSP源码，并进行debug调试，这样可以方便我们跟踪底层代码的调用流程。]]></description><category></category></item><item><title><![CDATA[React Native新架构系列-新架构介绍]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/140783783</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/140783783</guid><author>bingjianIT</author><pubDate>Mon, 29 Jul 2024 23:34:28 +0800</pubDate><description><![CDATA[React Native新架构综述]]></description><category></category></item><item><title><![CDATA[一文学会从零搭建编译AOSP源码刷机全流程]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/140783754</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/140783754</guid><author>bingjianIT</author><pubDate>Mon, 29 Jul 2024 23:31:27 +0800</pubDate><description><![CDATA[本文将介绍从零搭建AOSP（Android Open Source Project）编译环境，并编译最新的android-14.0.0_r50分支生成ROM刷入Pixel 6设备的过程，便于我们学习研究Android Framework层源码]]></description><category></category></item><item><title><![CDATA[JS的console对象的一些小技巧]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/119304530</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/119304530</guid><author>bingjianIT</author><pubDate>Sun, 01 Aug 2021 22:25:31 +0800</pubDate><description><![CDATA[在学习 JS 的过程中，我们常用console.log输出日志到浏览器控制台，今天就来看看console对象的一些使用小技巧。
在浏览器中，console对象是window对象上的一个属性，我们可以在控制台打印出window对象或者使用window.hasOwnProperty('console')来进行证明，我们一般是直接引用 console 使用。

基本使用
1.打印不同级别的日志
JS 定义了不同的日志级别，我们可以使用不同的方法输出不同级别的日志，他们之间的区别主要在于控制台的展示形式以及我们可.]]></description><category></category></item><item><title><![CDATA[几款提升开发体验的VSCode插件推荐]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/114501600</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/114501600</guid><author>bingjianIT</author><pubDate>Sun, 07 Mar 2021 22:37:12 +0800</pubDate><description><![CDATA[今天推荐几款通用的VSCode插件给大家。

对于轻量级的文本或代码编辑器，最开始用过Notepad++，后来换了Sublime和Atom，最后换成了VSCode。作为一款微软出品的编辑器，最吸引我的是轻量级、启动快，扩展丰富，尤其是扩展丰富，目前前端代码开发，以及常规的代码文件编辑修改，我都是用VSCode来完成的，如果你还没有尝试过，强烈推荐，顺便贴一个下载地址：https://code.visualstudio.com/
今天就推荐几款通用的VSCode插件给大家，可以极大提升大家的使用体验和效率。.]]></description><category></category></item><item><title><![CDATA[AndroidStudio更新4.1无法启动问题解决方法]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/109142316</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/109142316</guid><author>bingjianIT</author><pubDate>Sun, 18 Oct 2020 10:47:30 +0800</pubDate><description><![CDATA[最近AndroidStudio4.1正式版本发布，点了更新提示先更新插件，然后可能是更新过程中重启了AndroidStudio，结果导致再次打开时直接无法启动了。

启动时报错信息如下：
java.lang.NoSuchMethodError: com.intellij.ide.plugins.PluginManagerCore.getEnabledPluginRawList()Ljava/util/List;

看报错信息跟插件也有一点关系，搜索了一下找到一种解决方法，亲测有效。
直接在命令行执行如下命.]]></description><category></category></item><item><title><![CDATA[一场setTag引发的血案与思考]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/100754805</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/100754805</guid><author>bingjianIT</author><pubDate>Thu, 12 Sep 2019 01:26:34 +0800</pubDate><description><![CDATA[今天讲一个Android中由于setTag使用不慎引发的血案以及一些思考。

故事背景

如上图，app这个Module通过远程依赖aar的方式依赖了IM这个Module。在app这个Module中有如下的代码：
View view = findViewById(R.id.view);
view.setTag(R.id.root_position);

这个 root_position 是声明在...]]></description><category></category></item><item><title><![CDATA[kotlin小悟-这个继承有点不一样]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/100189930</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/100189930</guid><author>bingjianIT</author><pubDate>Mon, 02 Sep 2019 00:15:42 +0800</pubDate><description><![CDATA[今天聊聊kotlin中关于构造函数的一个话题。

我们知道，在kotlin中构造函数分为主构造函数和从构造函数，关于详细的内容，可以点击下面的文章链接了解。
Kotlin系列之主构造方法和初始化语句块
Kotlin系列之从构造方法
前置知识
我们经常会写这样的代码：
//父类
open class Father{

}


// 子类
class Son: Father(){
    
}

注...]]></description><category></category></item><item><title><![CDATA[kotlin小悟-安全调用符]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/100149289</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/100149289</guid><author>bingjianIT</author><pubDate>Fri, 30 Aug 2019 00:30:26 +0800</pubDate><description><![CDATA[今天看看kotlin中的安全调用符的一个注意点。

之前的文章已经讲过ktlin中的安全调用符，可以点击查看。
知识点
kotlin中的安全调用符 ?. 是线程安全的。
代码验证
我们打开IDEA写下面一段代码：
class Sample(var name: String?){
    fun test(){
        if(name != null){
            print...]]></description><category></category></item><item><title><![CDATA[欢迎与我交流]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/98800601</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/98800601</guid><author>bingjianIT</author><pubDate>Thu, 08 Aug 2019 00:02:44 +0800</pubDate><description><![CDATA[优快云改版之后，博客左侧的个人自定义栏目无法显示了。

如果对于我的博客有任何问题，都可以在博客下方留言，也欢迎关注我的个人微信公众号，佛系更新。

GitHub

个人博客

邮箱: szh@codekong.cn

...]]></description><category></category></item><item><title><![CDATA[Git系列之简介与安装配置]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/89819404</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/89819404</guid><author>bingjianIT</author><pubDate>Sat, 04 May 2019 23:00:41 +0800</pubDate><description><![CDATA[从今天起，将会陆续更新一个Git从入门到进阶的系列文章。

我个人觉得Git的使用不仅仅限于程序员，只要是涉及到协作与版本管理的地方，Git都应该算是一个不错的选择。
哪怕你已经使用过一段时间的Git，我相信我的文章也会对你有那么一点点启发，一点点帮助，其实，这就够了。
你可以通过思维导图快速了解文章的主要内容，以决定是否需要继续阅读。

简介
先放上Git的官方地址 https://git-s...]]></description><category></category></item><item><title><![CDATA[Kotlin系列之数组与集合]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/88367289</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/88367289</guid><author>bingjianIT</author><pubDate>Sat, 09 Mar 2019 15:59:40 +0800</pubDate><description><![CDATA[今天说说kotlin中的数组和集合。

我们前面说过kotlin是一门更加纯粹的面向对象的语言，所以kotlin中的数组与集合与Java中会有一些不同，但是为了性能考虑，同时因为kotlin的最终编译产物是运行在JVM之上的，还为了保持kotlin与Java良好的互操作性，所以kotlin的最终编译产物又在尽可能接近Java的编译产物。
对象数组
我们在之前的代码中看到kotlin的main函数...]]></description><category></category></item><item><title><![CDATA[kotlin系列之基本类型]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/88095263</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/88095263</guid><author>bingjianIT</author><pubDate>Sun, 03 Mar 2019 22:18:56 +0800</pubDate><description><![CDATA[今天一起来看看kotlin中的基本类型，包括基本的数据类型和其他一些特殊的与Java不同的类型。

基本数据类型
在Java中数据类型被分为基本数据类型和引用数据类型。在kotlin中所有的数据类型都是引用数据类型。与Java中的数据类型对应，kotlin中的数据类型有如下几种:




数据类型
java中的类型
kotlin中的类型




整数
byte short int long
By...]]></description><category></category></item><item><title><![CDATA[Kotlin系列之可空类型的处理]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/87830226</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/87830226</guid><author>bingjianIT</author><pubDate>Wed, 20 Feb 2019 22:57:06 +0800</pubDate><description><![CDATA[
在前面的文章中，我们已经看到了kotlin为了解决NPE问题作出的一些努力。这篇文章我们继续学习kotlin中与可空类型处理相关的一些知识。

非空断言
在程序的编写过程中有这样一种场景，我们已经在前一个函数中对一个可空类型的变量进行了检查，之后我们在接下来的函数中使用这个变量，我们其实已经很明确地知道这个变量前面已经进行了判空处理，后续不可能为空，但是编译器无法清楚地推测出来，这时候在编译器眼...]]></description><category></category></item><item><title><![CDATA[Jupyter Notebook报错Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/86182096</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/86182096</guid><author>bingjianIT</author><pubDate>Wed, 09 Jan 2019 21:45:31 +0800</pubDate><description><![CDATA[今天使用Jupyter Notebook老是报服务会挂掉，查看控制台，主要的报错是下面这句
Initializing libiomp5.dylib, but found libiomp5.dylib already initialized.

简单理解这个就是重复加载了动态链接库，解决方法有下面两种：
方法一：
在Python程序的开头加上下面两句:
import os
os.environ[&quot;K...]]></description><category></category></item><item><title><![CDATA[Kotlin系列之类型可空性]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/85942693</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/85942693</guid><author>bingjianIT</author><pubDate>Sun, 06 Jan 2019 18:56:32 +0800</pubDate><description><![CDATA[作为一个程序员，最常见的问题恐怕就是NPE了吧，有时候即使很小心的编码，还是避免不了出现NPE，在Kotlin中，它力争把这个在运行时常常出现的问题在编译器解决掉，让我们写出更加健壮不易崩溃的代码。
Java的类型系统存在的问题
在说kotlin之前，我们先谈谈Java中的类型系统。什么是类型呢？通俗来讲其实就是对所有我们要表示的数据确定一个具体的分类。
比如，我们把12这个数据分为int这个分类...]]></description><category></category></item><item><title><![CDATA[Kotlin系列之带接收者的Lambda]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/85346481</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/85346481</guid><author>bingjianIT</author><pubDate>Sun, 30 Dec 2018 00:20:24 +0800</pubDate><description><![CDATA[
今天来看看Kotlin中关于lambda的两个函数with和apply，我们将其称为带接收者的lambda，不了解为什么会这么命令，看完下面的实例你应该就可以理解了。

注意，上面也已经说了，with和apply其实是两个函数，虽然它们看起来像是关键字。
with函数
简单使用
我们在Java中经常会写下面这样的代码：
public String getRes() {
    StringBui...]]></description><category></category></item><item><title><![CDATA[Kotlin系列之序列]]></title><link>https://blog.youkuaiyun.com/bingjianIT/article/details/84781365</link><guid>https://blog.youkuaiyun.com/bingjianIT/article/details/84781365</guid><author>bingjianIT</author><pubDate>Mon, 03 Dec 2018 23:12:15 +0800</pubDate><description><![CDATA[
今天来一起学习下Kotlin中的序列。

在开始之前，先说一下我们定义的演示数据，后面数据定义的代码就不重复出现了。
//Person数据类
data class Person(val name: String, val age: Int)	

val personList = listOf(Person(&quot;小红&quot;, 22),
        Person(&quot;小明&quot;, 23),
        ...]]></description><category></category></item></channel></rss>