• 等级
  • 3160 访问
  • 7 原创
  • 0 转发
  • 1325494 排名
  • 4 评论
  • 0 获赞

小白 C++ 入门并发疯学习路线(书单)

真人就是我自己,这是我的 C++ 学习之路总结。 具体总结前,想先回答一个问题——要不要先学C,再学C++? 我作为小白时疑惑过这个问题,在此给后来的小白和当年的自己一个答案。 个人看法是,学习C++,就直接学习C++,不用先学C。在微软维护STL的Stephen Thomas Lavavej都说他当年学C++之前学C语言浪费了大量的时间,早知道就直接从C++开始。 因此,我这篇文章基本不提C的学...

2018-09-28 21:12:45

Android 并发/多线程 的基础与应用

本篇文章主要目的为总结 覆盖80%场景的20% Android端并发所需基础知识和应用。 Android 端应用主要使用 Java 语言开发,所以基础与 Java 的并发基础基本一样,深入了解推荐细读《Java并发编程实践》。应用部分就会掺杂 Android 的东西了。 并发与线程、线程与线程不安全 讨论并发其实就是在讨论多线程。 而并发这个编程主题长久地被人拎出来讨论的原因,被前人们总结...

2018-06-03 16:36:05

列表型布局套路总结

手机屏幕尺寸有限,几乎每个 app 的内容区,都会用列表呈现。不信可以打开你手机里的任意一个 app 看看,99%的 app 的内容区都能被抽象成一个大列表。只是根据内容的丰富度,列表的复杂度有所不同。内容区的结构骨架,基本上就是由列表布局奠定的。从这点看,虽然还有其他各种类型的布局,但是它们都没有列表型的布局来得重要。 总的来说,必须知道的有 如何应对多类型复杂结构、几个滚动相关的实用的特别交...

2018-06-03 16:33:53

恶意用户识别?——Java 层反模拟器、反Hook、反多开技巧

近两年,Android端的虚拟化技术和群控技术发展急速,带来很多好玩产品和便利工具。但是作为App开发者就头疼了,恶意用户(比如不文明用户、比如刷单)利用这些技术,作恶门槛低得不知道哪里去。我们需要思考怎么识别和防御了。 下文介绍一些简单但是有效的恶意用户识别(方便后续封号)方案。 Anti 模拟器 这个很容易理解,模拟出来的机器,每次模拟的时候生成的设备ID,只存在模拟器使用的生命周期...

2018-06-03 16:31:15

如何检测应用通知权限?如何跳转通知权限设置页?

如何检测应用通知权限? 一般情况下,Api 19 以前是没有通知管理的,默认都是开启,不用管。 Api 19 – 24 虽加入了通知管理功能,但没有开放检测是否开启了通知的接口,开发者只能用反射来获取权限值。 Api 24 以上,NotificationManager 提供了 areNotificationsEnabled()方法检测通知权限。 support 包已经考虑了以上场景,在 2...

2018-06-03 16:28:37

如何实现 “中间这几个字要加粗,但是不要太粗,比较纤细的那种粗” ?

分享一个最近做业务遇到的简单又蛮有意思的的文本显示处理过程。具体就是有这么一段文字,类似“转盘抽奖获得跑车x1,点击领取~”,用TextView显示。 设计师:“能让文字加粗吗?” “可以”,然后加上了粗体属性android:textStyle=”bold”。 <TextView android:id="@+id/tv_title" ...

2018-06-03 16:27:33

控制 LinearLayout 优先显示右边的布局,空间不足时挤压左边控件

本文是一种奇怪又常见的布局需求实现方案的记录。 具体需求长这样子: 显示用户名和用户 ID 整体宽度不能固定,要跟随内容变化 空间不够的话优先显示ID,截取用户名过长部分显示为“…” 抽象起来就是多个元素横向排列,在空间不足的小屏手机上,保证显示右边的元素,挤压左边的。 怎么实现呢? 好简单啊,一开始我是这样想,脑子里已经瞬间想好两个方法 —— RTL 属性, Weight 属性...

2018-06-03 16:26:06

greens1995

关注
  • Android开发工程师
  • 中国
奖章
  • 持之以恒
  • 粉丝 2
  • 关注 0