💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
##教程 1. [零开始的Android新项目3 - MVPVM in Action, 谁告诉你MVP和MVVM是互斥的](http://blog.zhaiyifan.cn/2016/03/16/android-new-project-from-0-p3/) 去年5月左右的时候,笔者在逛GitHub的时候,看到了一个MVP的项目,叫做mosby,仔细看了源码和作者介绍的文章后,发现确实有点意思,虽然会需要多写几个类和方法,但是解决了activity/fragment过重的问题,通过V/P分离能够帮助提高可维护性。时至去年年底,今年年初,MVP才逐渐被大家所知,也不时看到些文章介绍其概念和实践。 2. [Android MotionEvent详解](http://ztelur.github.io/2016/03/16/Android-MotionEvent%E8%AF%A6%E8%A7%A3/) (By stelar) 我们都知道,每个触摸事件都代表用户在屏幕上的一个动作,而每个动作必定有其发生的位置。在MotionEvent中就有一系列与标触摸事件发生位置相关的函数:1\. getX()和getY():由这两个函数获得的x,y值是相对的坐标值,相对于消费这个事件的视图的左上点的坐标。2\. getRawX()和getRawY():有这两个函数获得的x,y值是绝对坐标,是相对于屏幕的。 3. [Android安全攻防战,反编译与混淆技术完全解析(下)](http://blog.csdn.net/guolin_blog/article/details/50451259) 在上一篇文章当中,我们学习了Android程序反编译方面的知识,包括反编译代码、反编译资源、以及重新打包等内容。通过这些内容我们也能看出来,其实我们的程序并没有那么的安全。可能资源被反编译影响还不是很大,重新打包又由于有签名的保护导致很难被盗版,但代码被反编译就有可能会泄漏核心技术了,因此一款安全性高的程序最起码要做到的一件事就是:对代码进行混淆。 4. [那些年,我们一起点过的赞](http://t.cn/RGsqGst) 举个例子,就用户最多的微信、QQ来说,点赞也就是个心形和拇指的放大动画(自己去体验下),这里顺便吐槽下网易的点赞,动画做的不错,虽然我手机小小不流畅,可是不能取消赞是怎么回事? 也许,现在你觉得无非就是个点赞效果,随便做个点击效果就好了,也许产品设计的人也是这样觉得的,也许用户根本就不在乎。 5. [Android Bitmap面面观](http://t.cn/RGsibtl) 在日常开发中,可以说和Bitmap低头不见抬头见,基本上每个应用都会直接或间接的用到,而这里面又涉及到大量的相关知识。所以这里把Bitmap的常用知识做个梳理,限于经验和能力,不做太深入的分析。 6. [Android 6.0 对于权限和标识符的更改](http://t.cn/RGFY6KD) 在 Marshmallow 中,权限请求已从安装时改到运行时。 这是 SDK 23+ 的一项强制性改动,意味着它会影响所有以 Android 6.0 作为目标平台的开发者和应用。无论如何,您的应用都需要更新,因此,您的挑战在于审慎地进行更新。 7. [使用Clean Architecture模式开发Android应用的详细教程](http://www.infoq.com/cn/articles/clean-architecture-model-to-develop-android-application) 随着应用体积和代码数量的膨胀,Android应用的架构越来越复杂,遗留代码越来越多,接手开发、协作都变得越来越困难,有些人试图用框架、规范来解决这个问题,但为什么不从一开始就从架构上着手呢?干净架构就是一种很好的层级解耦、理清依赖的架构,作者在接触干净架构后就喜欢上了它,不仅在商业上成功应用,还撰文介绍、开源样板代码,简直化身干净架构布道师了,我们一起来看作者是如何向我们安利这一架构吧。 8. [极致的 Hybrid 混合式开发(去啊App Hybrid 实战)](https://yq.aliyun.com/articles/43) 目测性能是可观的。尽管H5包的离线化隔绝了弱网对秒出的干扰,设备本地 IO 耗时也是不能忽视的,算上zip的解压缩,仅在设备本地 IO 完全一个 HTML(包含其携带的资源文件)也会达到秒级的耗时,在iphone5上也会有0.5秒左右的白屏时间。另外,HTML 本身的优化依然无法绕过,WebView 里 JS 的运行效率通常是 Mobile Browser 里的四分之一。 9. [Java 单例真的写对了么?](http://www.race604.com/java-double-checked-singleton/) 单例模式是最简单的设计模式,实现也非常“简单”。一直以为我写没有问题,直到被 Coverity 打脸。Coverity 是静态代码分析工具,它会模拟其实际运行情况。例如这里,假设有两个线程进入到这段代码,其中红色的部分是运行的步骤解析,开头的标号表示其运行顺序。 10. [如何精确地测量java对象的大小-底层instrument API](http://blog.csdn.net/xieyuooo/article/details/7068216) 关于java对象的大小测量,网上有很多例子,大多数是申请一个对象后开始做GC,后对比前后的大小,不过这样,虽然说这样测量对象的大小是可行的,不过未必是完全准确的,因为过程中包含对象本身的开销,也许你运气好,正好能碰上,差不多,不过这种测试往往显得十分的笨重,因为要写一堆代码才能测试一点点东西,而且只能在本地测试玩玩,要真正测试实际的系统的对象大小这样可就不行了,本文说说java一些比较偏底层的知识,如何测量对象大小,java其实也是有提供方法的。 11. [一种为 Apk 动态写入信息的方案](http://t.cn/RGkwz7l) Android 使用的 Apk 包的压缩方式是 zip,与 zip 有相同的文件结构,在 zip 文件的末尾有一个 Central Directory Record 区域,其末尾包含一个 File comment 区域,可以存放一些数据,所以 File comment 是 zip 文件一部分,如果可以正确的修改这个部分,就可以在不破坏压缩包、不用重新打包的的前提下快速的给 Apk 文件写入自己想要的数据。 12. [Android自定义Lint实践](http://tech.meituan.com/android_custom_lint.html) Android Lint是Google提供给Android开发者的静态代码检查工具。使用Lint对Android工程代码进行扫描和检查,可以发现代码潜在的问题,提醒程序员及早修正。为保证代码质量,美团在开发流程中加入了代码检查,如果代码检测到问题,则无法合并到正式分支中,这些检查中就包括Lint。 13. [H5、React Native、Native应用对比分析](http://my.oschina.net/vczero/blog/597980?fromerr=s2CoLPvF) 2015年是React Native发展的一年,2016年必定是React Native蓬勃的一年!2016年React Native很可能成为最为成功的开源技术之一。为什么React Native这么火呢?那么React Native相比H5、Native又有哪些优势呢?使用React Native的正确姿势又是怎样呢? 14. [Android适配到底有多坑?](http://t.cn/RGs6AXc) 由于安卓系统的开放性,OEM厂商和运营商都会对Android进行定制。于是安卓的大航海时代来了。Android设备五花八门,各种Android手机、平板、电视、手表层出不穷,Android电冰箱电饭锅乱入…随着设备、品牌、系统版本、屏幕、分辨率碎片化的不断加深,兼容性测试一直在折磨着测试人员。统计,我们团队中做过兼容性测试的男性有2/3在已经开始谢顶,每做6个月兼容性测试寿命就会缩短半年。 ##开源库&项目 1. [TriangleLabelView](https://github.com/shts/TriangleLabelView) 自定义三角标签 View 2. [LuseenBottomNavigation](https://github.com/armcha/LuseenBottomNavigation) Material Bottom Navigation 实现 3. [BottomNavigation](https://github.com/krpiotrek/BottomNavigation) Material Bottom Navigation 实现 4. [LivingTabs](https://github.com/saiff35/LivingTabs) 仿 Youtube Gaming Tabs 滑动效果 5. [RxJavaSamples](https://github.com/rengwuxian/RxJavaSamples) RxJava 和 Retrofit 结合使用的几个最常见使用方式举例 6. [JKeyboardPanelSwitch](https://github.com/Jacksgong/JKeyboardPanelSwitch) Android键盘面板冲突 布局闪动处理方案 7. [cssdroid](https://github.com/manolovn/cssdroid) 一个可以把 CSS 文件转换成 Android Style 的库 8. [PhoneNumber](https://github.com/xdtianyu/PhoneNumber)  一个获取号码归属地和其他信息(诈骗、骚扰等)的开源库 9. [AndroidTabbedDialog](https://github.com/ashishbhandari/AndroidTabbedDialog) 支持左右滑动选项卡的 Dialog 10. [SuperNova-Emoji](https://github.com/hani-momanii/SuperNova-Emoji) 一个实现了可以渲染 Emoji 的库 11. [BoomMenu](https://github.com/Nightonke/BoomMenu) 可以让你的菜单按钮瞬间爆炸的库 12. [ArcProgressStackView](https://github.com/GIGAMOLE/ArcProgressStackView) 圆弧进度条 13. [AndRouter](https://github.com/campusappcn/AndRouter) Android路由框架 14. [Android-SpinKit](https://github.com/ybq/Android-SpinKit) 各种 Loading 动画效果 15. [ParallaxViewPager](https://github.com/ybq/ParallaxViewPager) 左右滑动时有视差的效果的 ViewPager 16. [AndroidKeyboardWatcher](https://github.com/AzimoLabs/AndroidKeyboardWatcher) 一个可以监控到软键盘打开关闭的库 17. [BlurLockView](https://github.com/Nightonke/BlurLockView) 毛玻璃效果的解锁界面 18. [AnimatedEditText](https://github.com/alphamu/AnimatedEditText) 可以给 EditText 输入文字时给输入的文字添加各种动画效果的库 19. [Carouselview](https://github.com/sayyam/carouselview) 可以循环切换的 Banner View 20. [Spork-Android](https://github.com/SporkLibrary/Spork-Android) 一个注解库 21. [android-snake-menu](https://github.com/xmuSistone/android-snake-menu) 模仿 Tumblr's 的菜单效果 22. [RoadRunner](https://github.com/glomadrian/RoadRunner) 可以使用 SVG 图片制作 Loading 动画的库 23. [LyricView](https://github.com/markzhai/LyricView) lrc 歌词显示控件 24. [MDPreference](https://github.com/XhinLiang/MDPreference) Material Design 风格的 PreferenceFragment 25. [EasingInterpolator](https://github.com/MasayukiSuda/EasingInterpolator) 28 个与众不同动画插值器 ##工具 1. [Coverity](http://www.coverity.com/) 静态代码分析工具,它会模拟代码的实际运行情况 2. [macaca](https://github.com/alibaba/macaca) 一套完整的自动化测试解决方案 ##视频 1. [内容型App的客户端架构之道](http://www.infoq.com/cn/presentations/content-type-app-client-architecture) 内容型App指的是以呈现内容内主要交互的应用,这样类型的App很多,好的架构设计,可以使得内容型App的研发事半功倍。在豌豆荚我们积累了很久的经验,构建一套基于呈现内容的应用框架,在这个框架上快速搭建出来了豌豆荚,和豌豆荚一览、豌豆荚锁屏(Snaplock)等应用。 2. [StrictMode for enforcing best practices at runtime](http://t.cn/RGDBAK9) Android 开发者除了编译时的 Lint 检查,在运行时还有另外一种捕获问题的手段——Strict Mode 。Strict Mode 工作在线程和虚拟机级别,除了用于检查性能方面的问题,它还可用于检查文件分享和网络访问。 ##设计 1. [得到简单设计方案的过程是复杂的](http://t.cn/RGs6Gz7) 前段时间有件“大事儿”, Facebook Reactions 终于面向全球用户开放 了。之所以说这是件大事是因为这是一个核心体现在设计上的重要项 目,Facebook 的标志性操作 Like 体系从此将步入新的时代。 ##技术之外 1. [如何才能找到自己热爱的工作](http://t.cn/RGsiuCb) 根据德勤的调查,80% 的美国人工作是不开心的,找一份自己热爱的工作的确不是一件容易的事。你对自己现在的工作满意吗?对你来说,真的有什么工作是非做不可的吗?如何才能发现自己热爱的工作是什么呢? 2. [Papi酱联手罗辑思维广告拍卖,有10件我想说的事 | 狗熊有话说](http://t.cn/RGDx7G7) 我相信一个很小的网络事件的热传可能是出于偶然,但一个持续高密度出现的网络事件,一定有着精心策划和准备,当然也有认真和努力。