<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[振之的博客]]></title><description><![CDATA[持续关注和分享：Android 性能调优、单元测试和重构、实用中间件、各种好玩的特效和黑科技、和小众刁钻没卵用需求的折腾记录。]]></description><link>https://blog.youkuaiyun.com/greens1995</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; greens1995]]></copyright><item><title><![CDATA[小白 C++ 入门并发疯学习路线(书单)]]></title><link>https://blog.youkuaiyun.com/greens1995/article/details/82890133</link><guid>https://blog.youkuaiyun.com/greens1995/article/details/82890133</guid><author>greens1995</author><pubDate>Fri, 28 Sep 2018 21:12:45 +0800</pubDate><description><![CDATA[真人就是我自己，这是我的 C++ 学习之路总结。
具体总结前，想先回答一个问题——要不要先学C，再学C++？
我作为小白时疑惑过这个问题，在此给后来的小白和当年的自己一个答案。
个人看法是，学习C++，就直接学习C++，不用先学C。在微软维护STL的Stephen Thomas Lavavej都说他当年学C++之前学C语言浪费了大量的时间，早知道就直接从C++开始。
因此，我这篇文章基本不提C的学...]]></description><category></category></item><item><title><![CDATA[Android 并发／多线程 的基础与应用]]></title><link>https://blog.youkuaiyun.com/greens1995/article/details/80557756</link><guid>https://blog.youkuaiyun.com/greens1995/article/details/80557756</guid><author>greens1995</author><pubDate>Sun, 03 Jun 2018 16:36:05 +0800</pubDate><description><![CDATA[本篇文章主要目的为总结 覆盖80%场景的20% Android端并发所需基础知识和应用。 
Android 端应用主要使用 Java 语言开发，所以基础与 Java 的并发基础基本一样，深入了解推荐细读《Java并发编程实践》。应用部分就会掺杂 Android 的东西了。

并发与线程、线程与线程不安全

讨论并发其实就是在讨论多线程。 
而并发这个编程主题长久地被人拎出来讨论的原因，被前人们总结...]]></description><category></category></item><item><title><![CDATA[列表型布局套路总结]]></title><link>https://blog.youkuaiyun.com/greens1995/article/details/80557721</link><guid>https://blog.youkuaiyun.com/greens1995/article/details/80557721</guid><author>greens1995</author><pubDate>Sun, 03 Jun 2018 16:33:53 +0800</pubDate><description><![CDATA[手机屏幕尺寸有限，几乎每个 app 的内容区，都会用列表呈现。不信可以打开你手机里的任意一个 app 看看，99%的 app 的内容区都能被抽象成一个大列表。只是根据内容的丰富度，列表的复杂度有所不同。内容区的结构骨架，基本上就是由列表布局奠定的。从这点看，虽然还有其他各种类型的布局，但是它们都没有列表型的布局来得重要。 
总的来说，必须知道的有 如何应对多类型复杂结构、几个滚动相关的实用的特别交...]]></description><category></category></item><item><title><![CDATA[恶意用户识别？——Java 层反模拟器、反Hook、反多开技巧]]></title><link>https://blog.youkuaiyun.com/greens1995/article/details/80557700</link><guid>https://blog.youkuaiyun.com/greens1995/article/details/80557700</guid><author>greens1995</author><pubDate>Sun, 03 Jun 2018 16:31:15 +0800</pubDate><description><![CDATA[近两年，Android端的虚拟化技术和群控技术发展急速，带来很多好玩产品和便利工具。但是作为App开发者就头疼了，恶意用户（比如不文明用户、比如刷单）利用这些技术，作恶门槛低得不知道哪里去。我们需要思考怎么识别和防御了。 
下文介绍一些简单但是有效的恶意用户识别（方便后续封号）方案。



Anti 模拟器

这个很容易理解，模拟出来的机器，每次模拟的时候生成的设备ID，只存在模拟器使用的生命周期...]]></description><category></category></item><item><title><![CDATA[如何检测应用通知权限？如何跳转通知权限设置页？]]></title><link>https://blog.youkuaiyun.com/greens1995/article/details/80557676</link><guid>https://blog.youkuaiyun.com/greens1995/article/details/80557676</guid><author>greens1995</author><pubDate>Sun, 03 Jun 2018 16:28:37 +0800</pubDate><description><![CDATA[如何检测应用通知权限？

一般情况下，Api 19 以前是没有通知管理的，默认都是开启，不用管。 
Api 19 – 24 虽加入了通知管理功能，但没有开放检测是否开启了通知的接口，开发者只能用反射来获取权限值。 
Api 24 以上，NotificationManager 提供了 areNotificationsEnabled（）方法检测通知权限。 
support 包已经考虑了以上场景，在 2...]]></description><category></category></item><item><title><![CDATA[如何实现 “中间这几个字要加粗，但是不要太粗，比较纤细的那种粗” ？]]></title><link>https://blog.youkuaiyun.com/greens1995/article/details/80557667</link><guid>https://blog.youkuaiyun.com/greens1995/article/details/80557667</guid><author>greens1995</author><pubDate>Sun, 03 Jun 2018 16:27:33 +0800</pubDate><description><![CDATA[分享一个最近做业务遇到的简单又蛮有意思的的文本显示处理过程。具体就是有这么一段文字，类似“转盘抽奖获得跑车x1，点击领取～”，用TextView显示。



设计师：“能让文字加粗吗？”

“可以”，然后加上了粗体属性android:textStyle=”bold”。



&amp;lt;TextView
            android:id=&quot;@+id/tv_title&quot;
          ...]]></description><category></category></item><item><title><![CDATA[控制 LinearLayout 优先显示右边的布局，空间不足时挤压左边控件]]></title><link>https://blog.youkuaiyun.com/greens1995/article/details/80557647</link><guid>https://blog.youkuaiyun.com/greens1995/article/details/80557647</guid><author>greens1995</author><pubDate>Sun, 03 Jun 2018 16:26:06 +0800</pubDate><description><![CDATA[本文是一种奇怪又常见的布局需求实现方案的记录。 
具体需求长这样子：




显示用户名和用户 ID
整体宽度不能固定，要跟随内容变化
空间不够的话优先显示ID，截取用户名过长部分显示为“…”


抽象起来就是多个元素横向排列，在空间不足的小屏手机上，保证显示右边的元素，挤压左边的。

怎么实现呢？

好简单啊，一开始我是这样想，脑子里已经瞬间想好两个方法 —— RTL 属性， Weight 属性...]]></description><category></category></item></channel></rss>