嗷嗷加班,如何保持学习能力~
上周看到一篇非常让人焦虑的文章,叫”废掉一个人最隐蔽的方式,是让他忙到没时间成长”...真可怕,很多时候咱们这一行,忙是不可避免的,索性决定周末写篇文章,如何在繁忙的工作环境下,有一定高效的学习能力。
当然了我是不会写鸡汤的,倒不是我反对鸡汤文。
由于我的文采问题,很难写出一篇让人产生冲动的文章,所以我写的文章一般都是我个人践行的总结,而且细致到大家也可以去实践。
今天我这篇文章要写给很多上班强度比较大的同学,当然也包括我。我面试过一些同学,其中很多工作经历比我多,遇到过很多问题,面试者都以:
不好意思,这块没了解过,上班太忙,都在做业务,没那么多时间去学习...
作为同行,我是可以理解的;作为一名面试官,这样的回答听多了,难免会扣分的。
场景
很多时候,上班特别忙,好不容易闲下来一会,一般都是下午,高强度工作之后,回头来看一些自己没有了解过的技术文章,大概是这样的情况:
恩,这个文章不错,我没了解过,来学习一下...
看了十分钟,还有这么长,快速拉一下滚动条吧...
拉完了,好。
想一下,刚才文章写的是什么?
忘了...算了,再看一遍...
鉴于自己的懵逼状态,越看越懵逼,随着时间流逝,可能还是没能消化掉一点内容。
找文章也是一种技术活
下面我要以具体的实例,来描述了,主人公:帅气的小张。
小张今天上班早早来到公司,嗷嗷干活,中午还遇到一些问题,忙得午觉都没睡,一直忙到下午4点,终于喘了口气,看了眼时间,距离周会5点,还有一个小时,此时处于半懵逼状态,但是还是决定这一个小时学点东西。
于是打开wanandroid.com,看到首页有篇讲解Android P hidden API的文章,想了下,这个我好像没有了解过,于是准备这一个小时学一波这个。
点开这篇文章:
另一种绕过 Android P以上非公开API限制的办法
http://weishu.me/2019/03/16/another-free-reflection-above-android-p/
恩...看了一遍,感觉有点屌...
大致了解下,是一种绕开 hidden API限制的问题,除了感觉有点屌,就没其他收获了。
ok,此时正视一下自己,自己没有了解过Android P hidden API约束的文章,这篇文章明显不适合用来入门。
换个姿势,拿出纸,笔,这个时候,就不要相信你的大脑了,拿出纸笔,写上对Android P hidden API 要了解到什么程度?
Android P是如何限制hidden API的?
如何突破Android P的限制?
然后快速的利用搜索引擎,快速浏览,找到几篇合理的文章,这里小张搜索完成后,留下了3篇文章,分别为:
1. 突破 Android P 非公开 API 限制
https://infoq.cn/article/2018/04/Android-P-API
2. 另一种绕过 Android P以上非公开API限制的办法
http://weishu.me/2019/03/16/another-free-reflection-above-android-p/
3.理解Android P内部API的限制调用机制
http://gityuan.com/2019/01/26/hidden_api/
第一篇较为科普;第二篇在一定知识储备条件下,可以看到也是一种比较深入的探索;第三篇为纯原理佐证。
可以看到,并不是说看到一篇文章就一定适合你:
1. 发掘到一个未知的技术
2. 列出自己对于该技术了解程度的预期
3. 找到几篇由浅入深的文章
别忘了,我们的小张还处于懵逼状态,现在对于他来说,就是3个链接,加上本子上的:
Android P是如何限制hidden API的?
如何突破Android P的限制?
小张的笔记本上
两行字。
不要仅仅是阅读
现在要打开第一篇文章了,上来说了限制的原理,大概200多个字,好了,不要再继续往下看了,记住你现在处于懵逼状态,200多个字已经很难记住了。
总结和用自己的话梳理这200个字,这200个是说的是限制的原理,这里小张非常喜欢造问题:
自己造一些疑问,利用目前看到的原理的解释来回答。
如何限制访问hidden api的?
先想想我们是怎么调用的呢?-> 反射
那么就是限制反射?
那反射有哪些方式?->Java 层的,和JNI层的。
那就是限制Java 层的,和JNI层类似反射的调用。
怎么 check 呢,你得分析出来是系统调用还是开发者调用,这个方法是不是 hidden API吧?
如何区分用户和系统?
如何确定该方法是否是hidden API?
一连串在纸上写了一堆问题,并且利用已经读到的文字自问自答。
现在小张的纸上已经是这样了:
如何限制的基本上搞清楚了。
继续往下看,下面的内容就是如何突破系统限制限制访问hidden API了。
说了三个方法,大致可以分为:
不用反射;
利用上文的怎么 check?把自己伪装成系统类;
利用上文的怎么 check?去掉字段上的hidden标识;
根据文章内容,完善我们在纸上的记录:
ok,第一篇文章看完了。
虽然处于懵逼状态,但是利用我们记录和不断问自己的方式,加强我们的认知,有条理的将一篇文章梳理下来。
如果你是强忍着一定要用大脑不动手,去把这个篇文章消化了,很困难,利用纸笔就会快很多。
接下来,我们再看第二篇:
另一种绕过 Android P以上非公开API限制的办法
http://weishu.me/2019/03/16/another-free-reflection-above-android-p/
从标题就知道这是个突破的方式,看完也很好记录:
大致阅读完成文章,发现文章中提出了一种“元反射”的方式,利用系统方法去反射,非常精髓,也属于伪装成系统调用,记录下来。
开心,又补充了一点知识,学到了。
最后第三篇:
理解Android P内部API的限制调用机制
http://gityuan.com/2019/01/26/hidden_api/
这篇是纯源码解析的,你可以看一些比较关键的地方,看看系统如何在源码层的调用流程,主要是用来 让已经记录下来的笔记 更加精确的...
最后,别忘了,你这些都在纸上,并不像文中的贴图。
好好看看自己纸上的内容,觉得差不多搞明白了,重新进行排版,然后记录到自己喜欢的笔记中去(电子):
我这里比较喜欢脑图,所以最终,就是这样的:
微信限制看不清,如有需要:可以wanandroid.com上搜索 公众号配图
电子笔记的好处是,可以贴链接和截图,而且可以手机端,PC端同步,下班路上还可以拿出手机再巩固下,最主要是:可以一直扩展和纠错。
千万不要忘了,贴上你这些知识主要是学了那几篇博客的参考。
有了这份笔记,正常情况下,和别人聊到Android P hidden API,你已经不吃亏了,你知道是系统是如何限制的,针对这些限制,你还可以列出1,2,3,分别如何突破...很稳。
根据自己的能力把握好了解的尺度
以上三篇文章,还有非常多的jni的代码,以及非常细节的处理方式。
这个时候有个疑问,我们一定要完全了解吗?
哪个方法一定要了解清楚吗?
不一定,根据自己对于知识的接受程度,比如说你不了解JNI,你就抛开JNI的代码,就一句话:这里利用JNI去修改XXX。
等你需要的时候我来查和验证好了。
但是对于Java的方式,你就要去跑一下代码,根据敲出来的代码,仔细推敲作者的描述,比如上文中的“元反射”就够你理解好一会了。
还有时候会有疑问,我们的知识都是来源于这些博客,假如他写的有错误怎么办?
有什么关系呢?你是一点不了解,人家都可以写博客了,肯定理解在你的前面,你先达到作者这个层次,以后看到其他文章,或者能力见长,或者需要实践的时候,发现有部分内容不准确,再完善你的笔记和记录就好了。
总结一下
在你注意力难以集中的时候,不要对于自己的大脑过于自信,不妨拿出纸笔,辅助自己的大脑,完成一个知识点的阅读。
即使你处于非常清晰的状态,读完一篇文章,脉络都在自己大脑中,其实你也该立刻梳理成一份笔记,记录下来。
一次的记录只是开始,说不定哪天你在鸿洋公众号又看到一篇类似的知识点,发现又补充了一些内容。你可以不断的改动以及优化这份记录。
最后
很多时候,有些事情是很难改变的,你感觉到忙,你因为一篇焦虑文章就要换工作,那么你下一份工作还忙怎么办?接着换么?
只有不断的调整自己去适应当下的环境,除非真的太过于压抑、压力...那时候保命要紧。
以上仅是我个人觉得在高强度工作之后的学习一个知识点的方法,文中的记录不一定严谨,也不一定适用于每个人。但是如果对一小部分人有所启发,有所帮助,何乐而不为呢。
以前的一些类似文章:
推荐阅读:
扫一扫 关注我的公众号
如果你想要跟大家分享你的文章,欢迎投稿~
┏(^0^)┛明天见!