<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[FengShanChuiChui的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/FengShanChuiChui</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; FengShanChuiChui]]></copyright><item><title><![CDATA[实现Android跨进程组件通信能有多简单？]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/119711446</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/119711446</guid><author>FengShanChuiChui</author><pubDate>Sun, 15 Aug 2021 11:44:37 +0800</pubDate><description><![CDATA[Android跨进程组件通信还能这么写？
作为一个Android开发，都要会点组件化知识。组件化的主要的特点，是剥离依赖，但组件间不直接依赖后，通信问题要怎么解决呢。
通常我们用的一下这种类似Binder通信的C/S架构，由一个ServiceManager服务管理器作为一个桥梁提供服务注册和服务查询，业务上要进行通信就是以下三部曲：定义服务接口，发布服务，使用服务。

这套架构在单一进程间运行很简单且直观，我们需要做的就是把服务接口下沉到公共依赖，在组件A实例化服务接口的对象，然后通过ServiceMana]]></description><category></category></item><item><title><![CDATA[Python BeautifulSoup4 select方法执行css选择器]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72967518</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72967518</guid><author>FengShanChuiChui</author><pubDate>Fri, 09 Jun 2017 18:09:12 +0800</pubDate><description><![CDATA[初识爬虫，使用urllib结合强大的BeautifulSoup简单写了下代码。看参考书上主要讲解了find方法的使用，但发现其是还支持css选择器语法选择，于是试验了一下。环境为：ubuntu12.04 + pycharm2017.1.3 + python3.6 + urllib + beautifulsoup4构造BeautifulSoup对象首先，我是以爬取搜狗搜索的主页来试验的。其结构大概如此]]></description><category></category></item><item><title><![CDATA[Android ContextThemeWrapper应用]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72821223</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72821223</guid><author>FengShanChuiChui</author><pubDate>Wed, 31 May 2017 16:15:34 +0800</pubDate><description><![CDATA[前言在Android obtainStyledAttributes获取属性值（注：在后文中称此文为前文）文中最后的例子处，提出了一个问题——如何对单个元素设置Theme而不影响到整个Activity。该问题的实际意义是对于有些属性我们只能从Theme中获取而不能通过内联的方式嵌入在单个元素标签内（具体分析可参见前文），因此要想修改这个属性值，只能在Activity使用的Theme中指定。于是，该修改]]></description><category></category></item><item><title><![CDATA[Android 属性（attr）引用]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72772506</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72772506</guid><author>FengShanChuiChui</author><pubDate>Fri, 26 May 2017 18:08:01 +0800</pubDate><description><![CDATA[前言经常我们在布局文件中能看到以这样的方式指定某些属性：            <!-- textAppearance使用系统样式 -->
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"]]></description><category></category></item><item><title><![CDATA[Android obtainStyledAttributes获取属性值]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72769844</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72769844</guid><author>FengShanChuiChui</author><pubDate>Fri, 26 May 2017 14:37:12 +0800</pubDate><description><![CDATA[obtainStyledAttributes是干什么的有过自定义属性或者查看过系统View相关子类源码的人可能对这个方法都不会陌生。 
该方法是Context类为我们提供的获取style中特定属性值的方法。通过这个方法，我们就可以获取在style中定义的各种属性值，然后根据获取到的不同的属性值实现差异化的效果。一种典型的使用方式是：        //TextView 构造方法片选代码]]></description><category></category></item><item><title><![CDATA[Android Dialog显示成Activity（全屏）]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72636784</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72636784</guid><author>FengShanChuiChui</author><pubDate>Tue, 23 May 2017 09:38:34 +0800</pubDate><description><![CDATA[前言我们都知道要想让一个Activity显示成为Dialog的样式可以对Activity指定Dialog的主题（Theme），但今天使用PreferenceScreen时发现内嵌的PreferenceScreen将一个对话框（Dialog）显示出了Activity的效果。这是怎么做到的呢，今天就来分析一下其中的原理。现象在preference的配置文件中配置内嵌的PreferenceScreen标签]]></description><category></category></item><item><title><![CDATA[Android平台使用okhttp]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72329104</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72329104</guid><author>FengShanChuiChui</author><pubDate>Tue, 16 May 2017 19:20:35 +0800</pubDate><description><![CDATA[前言前面有写过平台应用如何使用RxAndroid，那肯定也少不了Okhttp了。当然我们还可以用使用RxAndroid同样的方法在平台应用上使用Okhttp。但对于Okhttp，其实我们可以换另外一种使用方式。因为在Android的M和N平台中其实已经有Okhttp了，在如下目录
  /external/okhttp/okhttp
OkHttp用起来那对于这个external下面的OkHttp库，应]]></description><category></category></item><item><title><![CDATA[Android 平台应用使用RxAndroid]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72321198</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/72321198</guid><author>FengShanChuiChui</author><pubDate>Tue, 16 May 2017 18:07:41 +0800</pubDate><description><![CDATA[方法
  前提： 需要已经在Android Studio中使用过RxAndroid，以便我们可以提取其下载下来的RxAndroid库。
1.找到库文件在用户目录的子路径中找到RxAndroid和RxJava（RxAndroid依赖RxJava）的库文件（aar或者jar）。路径一般如下，请根据自己的RxAndroid版本号自行替换路径中某些值。RxAndroid：
  主目录/.gradle/cac]]></description><category></category></item><item><title><![CDATA[AndroidStudio升级后Android Device Monitor打开出错]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/71158767</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/71158767</guid><author>FengShanChuiChui</author><pubDate>Thu, 04 May 2017 10:30:40 +0800</pubDate><description><![CDATA[今天升级了Android Studio到2.3.1，顺便升级了SDK Tool到26.0.2，再之后从Android Studio中打开ADM（Android Device Monitor）就出错了。图示如下： 
 
于是根据提示查看log，找到一些信息如下：
  !SESSION 2017-05-04 10:03:49.535 ———————————————–  
  eclipse.buildI]]></description><category></category></item><item><title><![CDATA[Android CoordinatorLayout AppBar 上边缘阴影原因]]></title><link>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/70820666</link><guid>https://blog.youkuaiyun.com/FengShanChuiChui/article/details/70820666</guid><author>FengShanChuiChui</author><pubDate>Wed, 26 Apr 2017 18:32:09 +0800</pubDate><description><![CDATA[前言  今天使用Android Studio向导生成了一个Hello World应用，使用了Navigation Drawer Activity模板。显示的界面如下图（系统为Android 7.1）。 
  
  这儿的AppBar上边缘出现了阴影效果，但在平时使用AppBar时是像下面这个样子的，于是想来研究一下是怎么回事。 
  
 
 
布局文件分为两个部分，一是外层DrawerLayout布]]></description><category></category></item></channel></rss>