<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Marshon的专栏]]></title><description><![CDATA[克己，无私，奋勇，职责。成功的人永远让自己保持忙碌，让自己保持兴奋，喜欢自己手头上的任何事情。]]></description><link>https://blog.youkuaiyun.com/u014665060</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014665060]]></copyright><item><title><![CDATA[Flutter遇到open too many open files大坑之路]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/105575526</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/105575526</guid><author>u014665060</author><pubDate>Fri, 17 Apr 2020 21:19:04 +0800</pubDate><description><![CDATA[Flutter 踩了个大坑。
问题描述：在Flutter工程下，项目能够正常编译，运行。
在Android工程下：运行报错，报错很混乱，关键信息是Too many open files。修改系统增加打开的文件数后，发现还是一样。借了灵台一台mac来编就又正常。非常之头大，不过至少我能确定的是，代码是没问题的。这种情况下，当然打包也失败了。
在IOS工程下：也坑了。项目可以正常运行，但打包出错。看错...]]></description><category></category></item><item><title><![CDATA[Flutter框架设计，我真的再也不用MVC、MVP了]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/105316973</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/105316973</guid><author>u014665060</author><pubDate>Sat, 04 Apr 2020 20:58:12 +0800</pubDate><description><![CDATA[MVC、MVP、MVVM架构设计的方式，在Android中广泛被使用。从本质上我认为，MVC和MVP其实将View层的代码解耦到Controller/Presenter中。随着业务的复杂，C/P中代码积累的多了，然后又开始解耦一些Model或Interactor或其他。随着业务再度复杂，每一个层的业务都很多代码了， 然后各种分层设计就出来了等等…
那回归到最简单的MVC、MVP模式来，我们可以发现...]]></description><category></category></item><item><title><![CDATA[Flutter中举步维艰的WebView，终于实现了加载本地html]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/105315854</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/105315854</guid><author>u014665060</author><pubDate>Sat, 04 Apr 2020 20:57:03 +0800</pubDate><description><![CDATA[1、需求背景

实现一个不全屏的，支持加载本地html资源的webview

2、结论先行

选用了官方的webview_flutter。总结了下实践的过程，分析几个插件有如下特点：

flutter_inappwebview:

问题:

1.键盘有时候收不起来.

2.文本框不响应文字输入

3.部分Android机型上,js-&gt;flutter 不通.分析查看是native层的js接口没...]]></description><category></category></item><item><title><![CDATA[Flutter开发中这几个大坑尽量轻踩]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/92071247</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/92071247</guid><author>u014665060</author><pubDate>Sat, 15 Jun 2019 11:08:20 +0800</pubDate><description><![CDATA[记录一下这段时间入手Flutter后踩过的一些坑，这些坑希望后来的人踩的越少越好。现默认读者已经是懂得Flutter初步开发基础的程序员。
坑1
问题：在debug模式下，App启动第一个页面会很慢，甚至是黑屏。
解决：请切换到release模式，或者使用flutter build apk 打出来的release包不用修改任何代码就可以解决问题。
坑指数：⭐️⭐️⭐️
坑2
问题：使用官方做法集成...]]></description><category></category></item><item><title><![CDATA[Binder在Android系统中的运用]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/87907336</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/87907336</guid><author>u014665060</author><pubDate>Mon, 25 Feb 2019 21:45:04 +0800</pubDate><description><![CDATA[了解Binder还需要知道这些-Binder在Android系统中的运用
1.关于Binder的历史
OpenBinder
为什么采用
2.Binder工作原理简介
C-S  内存拷贝
用户内存空间-内核内存空间-用户内存空间
3.Binder在Android系统中的运用
1、场景
startActivity
sendBroadcast
bindService
2、bindService
3、不用...]]></description><category></category></item><item><title><![CDATA[Android一种实现任意View圆角的方案]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/80489867</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/80489867</guid><author>u014665060</author><pubDate>Tue, 29 May 2018 08:52:01 +0800</pubDate><description><![CDATA[一种实现迫不得已的圆角实现方案

该方案只针对那些“善变”的View如 SurfaceView、ListView、Viewpager等可滑动实现的圆角方案，一般情况下你不会用到，用到说明你已经基本无奈了。 
这是一种经过调研后的“勉强”实现圆角方案，其中需求背景是在ViewPager、ListView等可滑动系列View的圆角方案，并可在SurfaceView、TextureView上使用圆角。用...]]></description><category></category></item><item><title><![CDATA[Gradle依赖库选择库的flavor]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/79899505</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/79899505</guid><author>u014665060</author><pubDate>Wed, 11 Apr 2018 17:00:46 +0800</pubDate><description><![CDATA[compile project(path: ‘:sdk’, configuration: ‘falvorname’) ]]></description><category></category></item><item><title><![CDATA[Android Studio升级后编辑build.gradle文件顿卡很卡]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/79739121</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/79739121</guid><author>u014665060</author><pubDate>Thu, 29 Mar 2018 10:46:03 +0800</pubDate><description><![CDATA[Android studio更新到2.2后，编辑module下的build.gradle文件就卡顿很久，然后才能反应一下，再次输入，又卡顿，非常恼人。

在公司使用Android Studio2.2.2 的时候，编辑build.gradle的时候，速度还是很快的，非常奇怪，到底是什么原因呢？  
在网上搜索了半天，提升Android Studio的提升编辑性能的所谓教程（加大vm的内存大小等），都...]]></description><category></category></item><item><title><![CDATA[Android系统关机流程]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/79500424</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/79500424</guid><author>u014665060</author><pubDate>Fri, 09 Mar 2018 17:26:19 +0800</pubDate><description><![CDATA[概述：Android的的电源键按住后，会发送出Power键事件到PhoneWindowManager里，这时候弹出dialog关机提示。点击关机按钮事件触发了WindowManagerService的shutdown()方法。后续最终调用了ShutDownThread，关机之前把各种系统级服务也shutdown停止，最后调用属性服务来设置属性”sys.powerctl”, “shutdown”，属...]]></description><category></category></item><item><title><![CDATA[Android系统启动后Launcher启动(概述)]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/79301395</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/79301395</guid><author>u014665060</author><pubDate>Fri, 09 Feb 2018 19:30:07 +0800</pubDate><description><![CDATA[
  Launcher启动流程




1、AMS的systemReady（）

上回讲述了《Android系统启动流程》，当系统在Framework层经过一系列多种语言程序有来有回之后，系统服务会被其中，其中包括AMS，startOtherServices（）方法执行后阶段，各种被启动起来的Service会各种掉systemReady（）；其中AMS的systemReady就会被调用，这时候就是...]]></description><category></category></item><item><title><![CDATA[Android系统启动流程]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/79291239</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/79291239</guid><author>u014665060</author><pubDate>Thu, 08 Feb 2018 16:34:54 +0800</pubDate><description><![CDATA[
  系统启动流程


我们知道，Android系统是基于Linux改造出来的，所以继承了Linux很多特性，包括进程管理。在系统启动过程中，第一个启动的进程是Init进程，后面所有Fork出来的进程都是它的子孙后代，包括跟Android紧密联系的Zygote进程也是Init进程衍生的。



1、系统启动前期-Init进程

当按下开机按钮后，系统启动开始挂载设备，初始化Init进程，其中入口函...]]></description><category></category></item><item><title><![CDATA[Kotlin学习笔记二(数据类型)]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/77726274</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/77726274</guid><author>u014665060</author><pubDate>Wed, 30 Aug 2017 22:08:16 +0800</pubDate><description><![CDATA[7种基本类型> Byte 1字节
> Short 2字节
> Int 4字节
> Long 8字节 
> Float 4字节
> Double 8字节
> String <=2字节
位运算shl(bits) – 有符号左移 (Java 的 <<) 
shr(bits) – 有符号右移 (Java 的 >>) 
ushr(bits) – 无符号右移 (Java 的 >>>) 
and(bits) –]]></description><category></category></item><item><title><![CDATA[Kotlin学习笔记一(基本语法)]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/77657813</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/77657813</guid><author>u014665060</author><pubDate>Mon, 28 Aug 2017 22:39:59 +0800</pubDate><description><![CDATA[Kotlin定义函数定义函数一 :fun 方法名(参数):返回值类型{ 
    函数体 
}   fun sum(a: Int, b: Int): Int {
    return a + b
}如果返回值为空(无返回值)  则类型可以写成Unit或省略.定义函数二:fun 方法名(参数) = 表达式fun sum(a: Int, b: Int) = a + b如果函数体只是一个表达式(包括逻辑表]]></description><category></category></item><item><title><![CDATA[Android绘制Paint学习笔记]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/77017408</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/77017408</guid><author>u014665060</author><pubDate>Wed, 09 Aug 2017 21:39:21 +0800</pubDate><description><![CDATA[一.Shadow1.LinearGradientShader shader = new LinearGradient(100, 100, 500, 500, Color.parseColor("#E91E63"),  
        Color.parseColor("#2196F3"), Shader.TileMode.CLAMP);
paint.setShader(shader);
canva]]></description><category></category></item><item><title><![CDATA[Activity的setContentView看View的绘制流程]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/76651169</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/76651169</guid><author>u014665060</author><pubDate>Thu, 03 Aug 2017 21:26:59 +0800</pubDate><description><![CDATA[Activity 的setContentView看View的绘制流程1.Activity.setContentView    public void setContentView(@LayoutRes int layoutResID) {
        //获取window = PhoneWindow对象
        getWindow().setContentView(layoutResID]]></description><category></category></item><item><title><![CDATA[Android滤镜绘制]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/76648952</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/76648952</guid><author>u014665060</author><pubDate>Thu, 03 Aug 2017 20:13:39 +0800</pubDate><description><![CDATA[一、graphics提供的滤镜 
二、颜色RAG的滤镜处理内置滤镜注意： 使用滤镜之前先关闭硬件加速 
view.setLayerType(LAYER_TYPE_SOFTWARE,mPaint);MaskFilter继承MaskFilter–BlurMaskFilter ，用来设置模糊滤镜 
 mPaint.setMaskFilter(BlurMaskFilter(float radius, Blu]]></description><category></category></item><item><title><![CDATA[Android Studio 更新后报错 transformNativeLibsWithStripDebugSymbolForGeneralDebug]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/76503911</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/76503911</guid><author>u014665060</author><pubDate>Tue, 01 Aug 2017 10:21:54 +0800</pubDate><description><![CDATA[错误信息:
Error:Execution failed for task ':app:transformNativeLibsWithStripDebugSymbolForGeneralDebug'.
java.lang.NullPointerException (no error message) 
如果你装了NDK,或又是AS 3.0等等  那你就会被各种警告缠身还编译不好,好玩吧“`//忽略翻]]></description><category></category></item><item><title><![CDATA[Canvas,Paint方法记录(一)]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/76265762</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/76265762</guid><author>u014665060</author><pubDate>Fri, 28 Jul 2017 15:54:42 +0800</pubDate><description><![CDATA[Canvas,Paint方法记录Canvas.draw*Paint基础:Paint.setStyle(Style style) 设置绘制模式 
Paint.setColor(int color) 设置颜色 
Paint.setStrokeWidth(float width) 设置线条宽度 
Paint.setTextSize(float textSize) 设置文字大小 
Paint.setAnti]]></description><category></category></item><item><title><![CDATA[Android Studio模板开发基础教程]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/72716938</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/72716938</guid><author>u014665060</author><pubDate>Wed, 24 May 2017 22:07:35 +0800</pubDate><description><![CDATA[Java模板开发一、案例
修改项目包名
设计模式
通用功能
工程构建
二、FreeMark介绍1.为什么是FreeMarker？
  
    JSP 
    JavaWeb常用技术，通过在HTML页面技术里插入Java代码，动态生成Servlet代码。反过来解释，将页面表示逻辑从Java Servlet中抽离，结合HTML生成一个模板文件，通过编辑Jsp动态修改Controll层逻辑。]]></description><category></category></item><item><title><![CDATA[Git常用命令汇总]]></title><link>https://blog.youkuaiyun.com/u014665060/article/details/71551467</link><guid>https://blog.youkuaiyun.com/u014665060/article/details/71551467</guid><author>u014665060</author><pubDate>Wed, 24 May 2017 20:24:20 +0800</pubDate><description><![CDATA[Git命令行1.仓库初始化 
    git init 
2.内容确认 
    git diff  
    git log  
    git checkout –   (把最后一次修改撤销) 
        1.commit 
        2.add 
        (首先会从暂存区获取,如果没有,就去仓库里最后一次commit的文件获取) 
3.提交 
    git commit]]></description><category></category></item></channel></rss>