rokevin
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
移动
前端
语言
  • 基础

    • Linux
    • 实施
    • 版本构建
  • 应用

    • WEB服务器
    • 数据库
  • 资讯

    • 工具
    • 部署
开放平台
产品设计
  • 人工智能
  • 云计算
计算机
其它
GitHub
  • 知识整理

  • 开源项目
    • 音乐
  • 资料
  • 一线互联网企业资深架构师成长路线
  • 文章
  • 35岁的程序员被裁,一把辛酸泪
  • 2019年Android 原生开发现状
  • 如何写出一份“有理有据使人信服”的Android项目设计文档
  • 项目
  • Android高手分享学习资料及学习规划 2013-05-24
    • 一、应用层:
    • 二、框架层
    • 三、内核驱动层
  • 视频教程
  • 图像的绘制还有哪些需要掌握的点?
  • 【Android珍藏】推荐10个炫酷的开源库
  • 这15个Android开源库,只有经常逛Github的才知道!
  • Android 9.0以上系统使用HTTP限制
  • Android 开屏广告页的适配
  • 仿京东、淘宝首页,通过两层嵌套的RecyclerView实现tab的吸顶效果
  • 解析Android mdpi hdpi xhdpi xxhdpi xxxhdpi 之间关系
  • 提问JNI
  • (2)数学.1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222)2.概率问题. (poj3071,poj3440)3.GCD、扩展的欧几里德(中国剩余定理) (poj3101)(3)计算方法.1.0/1分数规划. (poj2976)2.三分法求解单峰(单谷)的极值.3.矩阵法(poj3150,poj3422,poj3070)4.迭代逼近(poj3301)(4)随机化算法(poj3318,poj2454)(5)杂题.(poj1870,poj3296,poj3286,poj1095)七.计算几何学.(1)坐标离散化.(2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用).(poj1765,poj1177,poj1151,poj3277,poj2280,poj3004)(3)多边形的内核(半平面交)(poj3130,poj3335)(4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429)高级:一.基本算法要求:(1)代码快速写成,精简但不失风格(poj2525,poj1684,poj1421,poj1048,poj2050,poj3306)(2)保证正确性和高效性. poj3434二.图算法:(1)度限制最小生成树和第K最短路. (poj1639)(2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解)(poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446(3)最优比率生成树. (poj2728)(4)最小树形图(poj3164)(5)次小生成树.(6)无向图、有向图的最小环三.数据结构.(1)trie图的建立和应用. (poj2778)(2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和 在线算法(RMQ+dfs)).(poj1330)(3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的目的). (poj2823)(4)左偏树(可合并堆).(5)后缀树(非常有用的数据结构,也是赛区考题的热点).(poj3415,poj3294)四.搜索(1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426)(2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482)(3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA算法. (poj3131,poj2870,poj2286)五.动态规划(1)需要用数据结构优化的动态规划.(poj2754,poj3378,poj3017)(2)四边形不等式理论.(3)较难的状态DP(poj3133)六.数学(1)组合数学.1.MoBius反演(poj2888,poj2154)2.偏序关系理论.(2)博奕论.1.极大极小过程(poj3317,poj1085)2.Nim问题.七.计算几何学.(1)半平面求交(poj3384,poj2540)(2)可视图的建立(poj2966)(3)点集最小圆覆盖.(4)对踵点(poj2079)八.综合题.(poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)
  • Android优质学习方法
  • gradle
  • 待整理到/computer/index.md中
  • 基础
  • 五分钟了解操作系统内核
  • 计算机组成原理
    • Linux文件权限
    • chmod命令
    • chgrp命令
    • chown命令
  • MarqueeView
  • SlideDetails
  • Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)
  • AppUpdate
  • 2020年GitHub 上那些优秀Android开源库,这里是Top10!
  • 为何大厂APP如微信、支付宝、淘宝、手Q等只适配了armeabi-v7a/armeabi?
  • 一文吃透Java集合框架
  • STAR法则
  • IP 基础知识“全家桶”,45 张图一套带走
  • Android全新UI编程 - Jetpack Compose 超详细教程 第1弹
  • KISS原则
  • 裸辞一年后,我从一个宝藏社群里,找到了适合我的赚钱项目

知识整理

功能片段 | 工具包

android源码解析 https://blog.csdn.net/qq_23547831/category_5910787.html

android源码解析 https://blog.csdn.net/qq_23547831/category_9265034.html

Activity启动流程图 —— 源码执行流程(android 6.0) 图画的很清楚 https://blog.csdn.net/wgheng2011/article/details/79419743

Activity启动流程 ,基于Android 10 https://juejin.im/post/6844904003763961864

在Android 10.0中Activity的启动流程 https://juejin.im/post/6844904088300158984

深入研究源码:Activity启动流程分析 https://juejin.im/post/6844903989851455495

开源项目

音乐

Android UI之自定义——最简单的仿QQ音乐歌词颜色渐变

资料

AndroidNote

xinzhazha-Common

CoreLink

AndroidCommon

一线互联网企业资深架构师成长路线

文章

Kotlin 风险高、RxJava 已过时,Android 原生开发现状分析! https://www.jianshu.com/p/2f27306415ea

35岁的程序员被裁,一把辛酸泪

https://www.jianshu.com/p/f597c46b018b

2019年Android 原生开发现状

https://www.jianshu.com/p/7b27079f2742

如何写出一份“有理有据使人信服”的Android项目设计文档

https://juejin.im/post/6850037264655843341

项目

  1. 项目核心功能模块
    1. 主页:近期热销商品展示
    2. 分类:高仿小米App分类
    3. 商品模块:瀑布流布局商品列表、分页逻辑梳理、购物车飞入效果
    4. 购物车模块:购物车数据计算和逻辑梳理、RecyclerView填坑、
    5. 通用购物车、UI实现和封装
  2. 项目核心技术栈 网络操作: Retrofit 字体库:Iconify 图片处理: Glide 展示层:Fragmentation框架 轮播图:Convenientbanner 万能适配器:BaseRecyclerViewAdapterHelper

Android高手分享学习资料及学习规划 2013-05-24

一、应用层:

应用层的书没有特别好的,内容都大同小异。推荐下面的学习资料:

  1. Android developer网站http://developer.android.com Android developer网站提供了熟悉Android系统最权威的资料,这里包含了Android所有概念的详细解释。
  2. Android SDK示例程序 AndroidSDK示例程序,位于sdk/samples目录下,提供了大量的案例程序(demo)。是熟悉应用程序和学习Android API的最佳入门材料。
  3. 《精通Android》 这本书是一个印度人和一个美国人合著的,算是介绍应用层相对好点的材料,缺点是翻译一般,而且过于偏重于理论,实践的内容比较少
  4. 一本能迅速上手的书 对于初学者,有一本迅速上手的书也是很有必要的。国内出版物通常侧重于实践,方便上手。这方面没有特别好的选择,通常人民邮电出版社图灵、机械工业出版社华章、电子工业出版社博文视点出版的原创书籍质量相对好些,可以根据自己的特点任选一本。最好选择2012年以后出版的图书,这样才可能包含比较新的概念,比如Fragment等。
  5. 分析Android源码内置应用程序 Android内置应用程序是比较进阶的学习资料。Launcher、Contacts、Phone、Camera、Gallery不但提供了大量的编程技巧,还对理解系统功能十分有益。
  6. 分析Android开源项目 可以从Android开源项目借鉴很多思想和方法。分析开源项目对第三方APP的开发十分有益。

二、框架层

框架层相对稳定,国内原创书籍质量也比较高。推荐下面的学习资料:

  1. 《Android系统源代码情景分析》和老罗的Android之旅博客 作者:罗升阳。基于Android 2.3。老罗的特点是功底深厚,分析深入,对框架层核心模块的理解都很清晰透彻。需要读者有较高的起点,对C和C++部分的分析更为详细,对深入理解框架层非常有用。这本书对Binder驱动、智能指针、Ashmem、键盘消息处理机制、Service、Log系统的分析非常好。建议学习框架层必备。
  2. 《Android的设计与实现:卷1》 作者:杨云君。基于Android4.1。这本书的特点是思路清晰,分析严谨细致,基本没留下什么盲点,对解决实际问题非常有用。对Java部分的分析更为详细。这本书对PackageManager、应用程序安装过程、ActivityManager、消息处理、进程管理、应用程序启动过程、系统启动过程的分析非常好。建议学习框架层必备。
  3. 《深入理解Android:卷1,2》 作者:邓凡平。卷1基于Android2.2 ,卷2基于Android 4.0。这本书的特点是分析流畅,内容丰富,卷1侧重于框架层C和C++部分,卷2侧重于框架层Java部分,分析比较简略,对迅速了解框架层很有用。这本书对Binder框架、PowerManager、ContentProvider、常见类、Surface的分析非常好。建议学习框架层必备。

三、内核驱动层

  1. 《Linux内核设计与实现》 Linux开发四大名著之一,简称LKD。是迅速理解Linux整体框架的最佳选择。
  2. 《深入理解Linux内核》 Linux开发四大名著之一,简称ULK。理解Linux内核的最佳选择。 3.《Linux设备驱动程序》 Linux开发四大名著之一,简称LDD。理解Linux驱动的最佳选择。 4.《深入理解Linux内核架构》 Linux开发四大名著之一,简称PLKA。理解Linux架构的最佳选择。
  3. 优秀的国产图书 Linux内核源代码情景分析 (作者:毛德操,胡希明):国内分析Linux内核最深入的一本书,基于linux2.4,很多内容仍然值得借鉴。 Linux设备驱动开发详解(作者:宋宝华):适合驱动入门的一本书,可以配合LDD一起看。 嵌入式Linux应用开发完全手册 (作者:韦东山):适合入门的一本书,非常易懂 ARM体系结构与编程(作者:杜春雷):适合了解ARM体系结构的一本书。

视频教程

扔物线文字对齐视频

Android文字基线(Baseline)算法 https://www.jianshu.com/p/057ce6b81c52

android自定义View:drawText详解 https://www.jianshu.com/p/5f01c42d0882

迷之 paint.getTextBounds()一个字符引发的喜剧 https://wenhaiz.xyz/get-text-bounds

Android TextView自动换行文字排版参差不齐的原因 https://www.iteye.com/blog/niufc-1729792

Android TextView显示中文不对齐问题 https://blog.csdn.net/xiahao86/article/details/44980885

Android 模仿微信读书左右对齐的文字效果 https://juejin.im/post/6844904057060982791

不到100行代码实现左右对齐TextView https://www.jianshu.com/p/7241ed34346a

图像的绘制还有哪些需要掌握的点?

图形的测量
camera的三维变换
属性动画相关
硬件加速相关
各种细节原理

【Android珍藏】推荐10个炫酷的开源库

https://juejin.im/post/6844903640927322126

这15个Android开源库,只有经常逛Github的才知道!

https://juejin.im/post/6856637313964441614

Android 9.0以上系统使用HTTP限制

Android9.0系统开始,应用程序默认只允许使用HTTPS类型的网络请求,HTTP类型的网络请求默认不再被支持,若想使用,则需要如下配置,在res目录下的xml目录下(不存在就创建该目录)创建network_config.xml文件。

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>

    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>

</network-security-config>

这个配置是允许我们以明文的方式在网络上传输数据,而HTTP使用的就是明文传输方式。然后还需在清单文件中的application标签加入如下

android:networkSecurityConfig="@xml/network_config"

Android 开屏广告页的适配

Android 开屏广告页的适配

android 相机预览拉伸问题

https://www.jianshu.com/p/f60db18df18f

腾讯性能检测库Matrix源码阅读

仿京东、淘宝首页,通过两层嵌套的RecyclerView实现tab的吸顶效果

https://juejin.im/post/5d5f4cfcf265da03e61b18b8

tablayout 悬浮与顶部效果,仿饿了么列表悬停效果 https://github.com/JasonGaoH/NestedRecyclerView https://blog.csdn.net/shanshan_1117/article/details/79608742

【五种方式实现Android吸顶效果 最全总结!】列表滑动到顶部 固定顶部栏效果 https://www.jianshu.com/p/23b8820f1549

Android NestedScrollView当下最流行的滚动视图+吸顶效果的实现最简单的方式--高仿携程(抖音七) https://blog.csdn.net/WHB20081815/article/details/94004008

Android scrollView和viewpager嵌套 指示器吸顶 根据viewpager每个页面的内容适配高度 https://blog.csdn.net/suwenlai/article/details/79960708

解析Android mdpi hdpi xhdpi xxhdpi xxxhdpi 之间关系

https://blog.csdn.net/qq84549557/article/details/78880830

Android笔记——ViewPager循环、自动滚动效果 https://www.jianshu.com/p/58f356eaa6e9

安全方面接触毕竟多的应该是加密、解密、混淆等,毕竟用户数据安全大于一切,不重视这个欧盟会教你做人

Encrypt / Decrypt Proguard R8 App Release

应用发布相关的知识,国内还得加上多渠道打包、插件化

插件化 多渠道打包 Playstore .keystore file

提问JNI

NDK相关内容: 1.指针!指针!还是指针! 2.如何避免内存泄露 3.JNI编码规范,特别注意理解其中的local和global对象的创建和释放,学会native call java、java call native。 4.makefile和MK文件的编写方法。 5.基本的shell知识,少许的Perl/Python知识,因为大型项目中难免会有通过脚本自动生成代码的地方。 6.编译和链接的基本知识,可以以GCC为例来学习,动态库和静态库的相关知识。 7.熟读NDK自带的文档,第一,文档本身不多,第二,NDK方面的资料本来就少。 8.跑完NDK中自带的例子,本来就不多,也比较简单,但很权威。 9.根据需求,学习native activity的相关内容,这其中还包含了对Android本身架构和执行流程的理解,就不展开了,反正是一堆东西。

说实话,如果你不是想做对性能要求特别高的游戏,不是想兼容大量的C/C++遗留基础代码,其实是没有必要对ndk做太过深入的学习的,因为到现在都Android 4.2了,开放的native接口还是有限,想操作一些高阶的手机特有功能还是只有走Java。

到最后,你想检验一下你的NDK学习成果,你可以把android源码中的webkit部分以及相关库拿出来,通过ndk方式编译、链接通过,把Baidu给跑出来,抛开一些C/C++的编码水平不说,你的NDK开发就算是基本学会了。

NDK的开发确实支持C/C++,目前Android在NDK层面也开放了很多系统的接口,通常大家选择NDK的原因有三个: 性能 防破解,二进制加密 利用已有的库

目前有比较多的游戏引擎在Android上的实现采用了通过NDK的方式来实现,通过直接封装OpenGL ES来实现。因为并不是非常清楚题主具体的方向是什么,很难有确定性的东西。

如果是转向做游戏的话,那么还是先熟悉C/C++的基础语法,然后深入学习游戏开发相关的图形学,3D数学,物理引擎等等吧。

如果转向是继续做应用的话,说实在的很难想象会有什么具体的东西,同样是熟悉C/C++语法,然后根据自己需要做的领域再深入学习对应的东西吧,例如音频和视频解码等等。

大体的思路就是,先成为一个基础水平的C/C++开发者,然后尝试成为一个Linux下C/C++开发者,然后再回到Android平台,结合自己具体的领域(例如OpenGL ES,音视频解码,网络等等)上下功夫吧。

关于应用层发展方向,由于只对应用层比较熟悉,所以扩展比较多,下面总结一下: 1.简单应用开发方向:用户体验为主,熟悉android系统原理; 2.专业APP开发方向:学术为主,比如OCR识别、美图; 3.游戏方向:OpenGL、cocos2d; 4.音视频处理方向:ffmpeg; 5.浏览器内核开发:网络时代必备; 6.黑技术:android加壳、Hook技术; 7.应用性能分析优化:比如SQLite性能优化。 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(poj3295) (6)模拟法.(poj1068,poj2632,poj1573,poj2993,poj2996) 二.图算法: (1)图的深度优先遍历和广度优先遍历. (2)最短路径算法(dijkstra,bellman-ford,floyd,heap+dijkstra) (poj1860,poj3259,poj1062,poj2253,poj1125,poj2240) (3)最小生成树算法(prim,kruskal) (poj1789,poj2485,poj1258,poj3026) (4)拓扑排序 (poj1094) (5)二分图的最大匹配 (匈牙利算法) (poj3041,poj3020) (6)最大流的增广路算法(KM算法). (poj1459,poj3436) 三.数据结构. (1)串 (poj1035,poj3080,poj1936) (2)排序(快排、归并排(与逆序数有关)、堆排) (poj2388,poj2299) (3)简单并查集的应用. (4)哈希表和二分查找等高效查找法(数的Hash,串的Hash) (poj3349,poj3274,POJ2151,poj1840,poj2002,poj2503) (5)哈夫曼树(poj3253) (6)堆 (7)trie树(静态建树、动态建树) (poj2513) 四.简单搜索 (1)深度优先搜索 (poj2488,poj3083,poj3009,poj1321,poj2251) (2)广度优先搜索(poj3278,poj1426,poj3126,poj3087.poj3414) (3)简单搜索技巧和剪枝(poj2531,poj1416,poj2676,1129) 五.动态规划 (1)背包问题. (poj1837,poj1276) (2)型如下表的简单DP(可参考lrj的书 page149): 1.E[j]=opt{D[i]+w(i,j)} (poj3267,poj1836,poj1260,poj2533) 2.E[i,j]=opt{D[i-1,j]+xi,D[i,j-1]+yj,D[i-1][j-1]+zij} (最长公共子序列) (poj3176,poj1080,poj1159) 3.C[i,j]=w[i,j]+opt{C[i,k-1]+C[k,j]}.(最优二分检索树问题) 六.数学 (1)组合数学: 1.加法原理和乘法原理. 2.排列组合. 3.递推关系. (POJ3252,poj1850,poj1019,poj1942) (2)数论. 1.素数与整除问题 2.进制位. 3.同余模运算. (poj2635, poj3292,poj1845,poj2115) (3)计算方法. 1.二分法求解单调函数相关知识.(poj3273,poj3258,poj1905,poj3122) 七.计算几何学. (1)几何公式. (2)叉积和点积的运用(如线段相交的判定,点到线段的距离等). (poj2031,poj1039) (3)多边型的简单算法(求面积)和相关判定(点在多边型内,多边型是否相交) (poj1408,poj1584) (4)凸包. (poj2187,poj1113) 中级: 一.基本算法: (1)C++的标准模版库的应用. (poj3096,poj3007) (2)较为复杂的模拟题的训练(poj3393,poj1472,poj3371,poj1027,poj2706) 二.图算法: (1)差分约束系统的建立和求解. (poj1201,poj2983) (2)最小费用最大流(poj2516,poj2516,poj2195) (3)双连通分量(poj2942) (4)强连通分支及其缩点.(poj2186) (5)图的割边和割点(poj3352) (6)最小割模型、网络流规约(poj3308, ) 三.数据结构. (1)线段树. (poj2528,poj2828,poj2777,poj2886,poj2750) (2)静态二叉检索树. (poj2482,poj2352) (3)树状树组(poj1195,poj3321) (4)RMQ. (poj3264,poj3368) (5)并查集的高级应用. (poj1703,2492) (6)KMP算法. (poj1961,poj2406) 四.搜索 (1)最优化剪枝和可行性剪枝 (2)搜索的技巧和优化 (poj3411,poj1724) (3)记忆化搜索(poj3373,poj1691)

五.动态规划 (1)较为复杂的动态规划(如动态规划解特别的施行商问题等) (poj1191,poj1054,poj3280,poj2029,poj2948,poj1925,poj3034) (2)记录状态的动态规划. (POJ3254,poj2411,poj1185) (3)树型动态规划(poj2057,poj1947,poj2486,poj3140) 六.数学 (1)组合数学: 1.容斥原理. 2.抽屉原理. 3.置换群与Polya定理(poj1286,poj2409,poj3270,poj1026). 4.递推关系和母函数.

(2)数学. 1.高斯消元法(poj2947,poj1487, poj2065,poj1166,poj1222) 2.概率问题. (poj3071,poj3440) 3.GCD、扩展的欧几里德(中国剩余定理) (poj3101) (3)计算方法. 1.0/1分数规划. (poj2976) 2.三分法求解单峰(单谷)的极值. 3.矩阵法(poj3150,poj3422,poj3070) 4.迭代逼近(poj3301) (4)随机化算法(poj3318,poj2454) (5)杂题. (poj1870,poj3296,poj3286,poj1095) 七.计算几何学. (1)坐标离散化. (2)扫描线算法(例如求矩形的面积和周长并,常和线段树或堆一起使用). (poj1765,poj1177,poj1151,poj3277,poj2280,poj3004) (3)多边形的内核(半平面交)(poj3130,poj3335) (4)几何工具的综合应用.(poj1819,poj1066,poj2043,poj3227,poj2165,poj3429) 高级: 一.基本算法要求: (1)代码快速写成,精简但不失风格 (poj2525,poj1684,poj1421,poj1048,poj2050,poj3306) (2)保证正确性和高效性. poj3434 二.图算法: (1)度限制最小生成树和第K最短路. (poj1639) (2)最短路,最小生成树,二分图,最大流问题的相关理论(主要是模型建立和求解) (poj3155, poj2112,poj1966,poj3281,poj1087,poj2289,poj3216,poj2446 (3)最优比率生成树. (poj2728) (4)最小树形图(poj3164) (5)次小生成树. (6)无向图、有向图的最小环 三.数据结构. (1)trie图的建立和应用. (poj2778) (2)LCA和RMQ问题(LCA(最近公共祖先问题) 有离线算法(并查集+dfs) 和 在线算法 (RMQ+dfs)).(poj1330) (3)双端队列和它的应用(维护一个单调的队列,常常在动态规划中起到优化状态转移的 目的). (poj2823) (4)左偏树(可合并堆). (5)后缀树(非常有用的数据结构,也是赛区考题的热点). (poj3415,poj3294) 四.搜索 (1)较麻烦的搜索题目训练(poj1069,poj3322,poj1475,poj1924,poj2049,poj3426) (2)广搜的状态优化:利用M进制数存储状态、转化为串用hash表判重、按位压缩存储状态、双向广搜、A算法. (poj1768,poj1184,poj1872,poj1324,poj2046,poj1482) (3)深搜的优化:尽量用位运算、一定要加剪枝、函数参数尽可能少、层数不易过大、可以考虑双向搜索或者是轮换搜索、IDA算法. (poj3131,poj2870,poj2286) 五.动态规划 (1)需要用数据结构优化的动态规划. (poj2754,poj3378,poj3017) (2)四边形不等式理论. (3)较难的状态DP(poj3133) 六.数学 (1)组合数学. 1.MoBius反演(poj2888,poj2154) 2.偏序关系理论. (2)博奕论. 1.极大极小过程(poj3317,poj1085) 2.Nim问题. 七.计算几何学. (1)半平面求交(poj3384,poj2540) (2)可视图的建立(poj2966) (3)点集最小圆覆盖. (4)对踵点(poj2079) 八.综合题. (poj3109,poj1478,poj1462,poj2729,poj2048,poj3336,poj3315,poj2148,poj1263)

动态规划 Dp状态设计与方程总结

1.不完全状态记录 <1>青蛙过河问题 <2>利用区间dp 2.背包类问题 <1> 0-1背包,经典问题 <2>无限背包,经典问题 <3>判定性背包问题 <4>带附属关系的背包问题 <5> + -1背包问题 <6>双背包求最优值 <7>构造三角形问题 <8>带上下界限制的背包问题(012背包) 3.线性的动态规划问题 <1>积木游戏问题 <2>决斗(判定性问题) <3>圆的最大多边形问题 <4>统计单词个数问题 <5>棋盘分割 <6>日程安排问题 <7>最小逼近问题(求出两数之比最接近某数/两数之和等于某数等等) <8>方块消除游戏(某区间可以连续消去求最大效益) <9>资源分配问题 <10>数字三角形问题 <11>漂亮的打印 <12>邮局问题与构造答案 <13>最高积木问题 <14>两段连续和最大 <15>2次幂和问题 <16>N个数的最大M段子段和 <17>交叉最大数问题 4.判定性问题的dp(如判定整除、判定可达性等) <1>模K问题的dp <2>特殊的模K问题,求最大(最小)模K的数 <3>变换数问题 5.单调性优化的动态规划 <1>1-SUM问题 <2>2-SUM问题 <3>序列划分问题(单调队列优化) 6.剖分问题(多边形剖分/石子合并/圆的剖分/乘积最大) <1>凸多边形的三角剖分问题 <2>乘积最大问题 <3>多边形游戏(多边形边上是操作符,顶点有权值) <4>石子合并(N^3/N^2/NLogN各种优化) 7.贪心的动态规划 <1>最优装载问题 <2>部分背包问题 <3>乘船问题 <4>贪心策略 <5>双机调度问题Johnson算法 8.状态dp <1>牛仔射击问题(博弈类) <2>哈密顿路径的状态dp <3>两支点天平平衡问题 <4>一个有向图的最接近二部图 9.树型dp <1>完美服务器问题(每个节点有3种状态) <2>小胖守皇宫问题 <3>网络收费问题 <4>树中漫游问题

Android优质学习方法

优质Android学习方法: 如何成为更好的Android开发者:

https://techbeacon.com/how-become-better-android-developer-30-bite-sized-pro-tips

代码家:学习历程和学习方法

https://zhuanlan.zhihu.com/p/22545574

代码家:成为一个有目标的学习者

https://zhuanlan.zhihu.com/p/25511770

鸿洋:浅谈个人学习方法

https://blog.csdn.net/lmj623565791/article/details/52905934

优质提升自己综合素质(习惯拖延症等)的行为心理学: https://jamesclear.com/articles

gradle

api 依赖这个module的module也能用 implemention 自己用

Android LayoutInflater原理分析,带你一步步深入了解View(一) https://blog.csdn.net/guolin_blog/article/details/12921889


QQ:836959067 请备注期号和姓名如 76期流川枫

三方库 脑图: http://naotu.baidu.com/file/680bda2c67e4a888b086d49852982a5e 结合http://www.mobdevgroup.com

翻墙 https://github.com/goagent/goagent

开源项目源码分析: http://www.codekk.com/open-source-project-analysis

Android资源下载网站 http://www.androiddevtools.cn/

开源项目网站 http://www.mobdevgroup.com/platform/android/library/ https://github.com/Trinea/android-open-project http://www.23code.com/ http://www.godcoder.com/

Android源码搜索: http://androidxref.com/

布局资源代码生成: http://android.lineten.net/layout.php

Fragment代码生成: http://www.andreamaglie.com/android-fragment-generator/index.html

Android属性动画: http://bbs.itheima.com/thread-172632-1-1.html

Android 编程下 Touch 事件的分发和消费机制 http://www.cnblogs.com/sunzn/archive/2013/05/10/3064129.html

抓包工具 Fiddler

Github:PoplarTang https://github.com/PoplarTang


借腾讯开源VasDolly,说说Android签名和多渠道打包的原理

Android 常用控件tips

BookStack v2.9 发布,提升程序稳定性


前端网站集合 https://segmentfault.com/a/1190000021486102?utm_source=sf-related

前端开发知识结构 https://github.com/JacksonTian/fks

待整理到/computer/index.md中

编程语言傻傻分不清:弱类型、强类型、动态类型、静态类型 https://www.jianshu.com/p/336f19772046

通俗的方式理解动态类型,静态类型;强类型,弱类型 https://segmentfault.com/a/1190000012372372

为什么程序员应该写博客?用什么博客系统?
CSDN、博客园、简书、知乎,最终还是选择segmentfault

https://github.com/luwrain/reader

https://github.com/daniel-007/ReadBook

https://github.com/ziktang/BookReader

https://github.com/suyangRDJ/Read_TXT_Highlight

https://github.com/QDqiaodong/Reader

https://github.com/boussouira/android-arabic-reader

基础

  • 计算机知识储备
    • 编译原理
    • 计算机网络
    • 操作系统
    • 算法原理
    • 软件工程/软件测试原理
    • Unicode
  • 软技能
    • 知识管理/总结分享
    • 沟通技巧/团队协作
    • 需求管理/PM
    • 交互设计/可用性/可访问性知识

五分钟了解操作系统内核

https://juejin.im/post/5d766a4151882562f83c2f77

计算机组成原理

https://juejin.im/post/5f1a8b295188252e362e38a8

【重学计算机】计算机组成原理 https://zhuanlan.zhihu.com/p/60958907

Linux文件权限

Linux文件采用10个标志位来表示文件权限,如下所示:

-rw-r--r--  1 skyline  staff    20B  1 27 10:34 1.txt
drwxr-xr-x   5 skyline  staff   170B 12 23 19:01 ABTableViewCell

第一个字符一般用来区分文件和目录,其中:

  • d:表示是一个目录,事实上在ext2fs中,目录是一个特殊的文件。
  • -:表示这是一个普通的文件。
  • l: 表示这是一个符号链接文件,实际上它指向另一个文件。
  • b、c:分别表示区块设备和其他的外围设备,是特殊类型的文件。
  • s、p:这些文件关系到系统的数据结构和管道,通常很少见到。

第2~10个字符当中的每3个为一组,左边三个字符表示所有者权限,中间3个字符表示与所有者同一组的用户的权限,右边3个字符是其他用户的权限。

这三个一组共9个字符,代表的意义如下:

  • r(Read,读取):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限
  • w(Write,写入):对文件而言,具有新增、修改文件内容的权限;对目录来说,具有删除、移动目录内文件的权限。
  • x(eXecute,执行):对文件而言,具有执行文件的权限;对目录来说该用户具有进入目录的权限。

权限的掩码可以使用十进制数字表示:

  • 如果可读,权限是二进制的100,十进制是4;
  • 如果可写,权限是二进制的010,十进制是2;
  • 如果可运行,权限是二进制的001,十进制是1;

具备多个权限,就把相应的 4、2、1 相加就可以了:

若要 rwx 则 4+2+1=7 若要 rw- 则 4+2=6 若要 r-x 则 4+1=5 若要 r-- 则 =4 若要 -wx 则 2+1=3 若要 -w- 则 =2 若要 --x 则 =1 若要 --- 则 =0

默认的权限可用umask命令修改,用法非常简单,只需执行umask 777命令,便代表屏蔽所有的权限,因而之后建立的文件或目录,其权限都变成000,

依次类推。通常root帐号搭配umask命令的数值为022、027和 077,普通用户则是采用002,这样所产生的权限依次为755、750、700、775。

chmod命令

chmod命令非常重要,用于改变文件或目录的访问权限。用户用它控制文件或目录的访问权限。

该命令有两种用法。一种是包含字母和操作符表达式的文字设定法;另一种是包含数字的数字设定法。

  1. 文字设定法
    • chmod [who] [+ | - | =] [mode] 文件名
    • 命令中各选项的含义为:
    • 操作对象who可是下述字母中的任一个或者它们的组合:
      • u 表示“用户(user)”,即文件或目录的所有者。
      • g 表示“同组(group)用户”,即与文件属主有相同组ID的所有用户。
      • o 表示“其他(others)用户”。
      • a 表示“所有(all)用户”。它是系统默认值。
    • 操作符号可以是:
      • 添加某个权限。
      • 取消某个权限。
      • = 赋予给定权限并取消其他所有权限(如果有的话)。
    • 设置mode所表示的权限可用下述字母的任意组合:
      • r 可读。
      • w 可写。
      • x 可执行。
      • X 只有目标文件对某些用户是可执行的或该目标文件是目录时才追加x 属性。
      • s 在文件执行时把进程的属主或组ID置为该文件的文件属主。方式“u+s”设置文件的用户ID位,“g+s”设置组ID位。
      • t 保存程序的文本到交换设备上。
      • u 与文件属主拥有一样的权限。
      • g 与和文件属主同组的用户拥有一样的权限。
      • o 与其他用户拥有一样的权限。
    • 文件名:以空格分开的要改变权限的文件列表,支持通配符。
    • 在一个命令行中可给出多个权限方式,其间用逗号隔开。例如:chmod g+r,o+r example 使同组和其他用户对文件example 有读权限。
  2. 数字设定法
    • 直接使用数字表示的权限来更改:
    • 例: $ chmod 644 mm.txt

chgrp命令

  • 功能:改变文件或目录所属的组。
  • 语法:chgrp [选项] group filename
  • 例:$ chgrp - R book /opt/local /book
  • 改变/opt/local /book/及其子目录下的所有文件的属组为book。

chown命令

  • 功能:更改某个文件或目录的属主和属组。这个命令也很常用。例如root用户把自己的一个文件拷贝给用户xu,为了让用户xu能够存取这个文件,root用户应该把这个文件的属主设为xu,否则,用户xu无法存取这个文件。
  • 语法:chown [选项] 用户或组 文件
  • 说明:chown将指定文件的拥有者改为指定的用户或组。用户可以是用户名或用户ID。组可以是组名或组ID。文件是以空格分开的要改变权限的文件列表,支持通配符。
  • 例:把文件shiyan.c的所有者改为wang。
  • chown wang shiyan.c

MarqueeView

SlideDetails

Android app 在线更新那点事儿(适配Android6.0、7.0、8.0)

https://juejin.im/post/6844903591975583758#heading-3

AppUpdate

https://github.com/azhon/AppUpdate

2020年GitHub 上那些优秀Android开源库,这里是Top10!

https://juejin.im/post/6844904138992517128

为何大厂APP如微信、支付宝、淘宝、手Q等只适配了armeabi-v7a/armeabi?

https://juejin.im/post/6844904148589084680

一文吃透Java集合框架

https://mp.weixin.qq.com/s/g66EiEQmHkJNCu09d8VwNw

STAR法则

STAR法则是情境(situation)、目标(target)、行动(action)、结果(result)四项的缩写。 STAR法则是一种常常被面试官使用的工具,用来收集面试者与工作相关的具体信息和能力。

如何使用STAR法则写自己的简历啊?缺少开发经验的简历。 https://www.zhihu.com/question/47061396

为什么在简历和面试中使用STAR原则成功率更高 https://zhuanlan.zhihu.com/p/26449491

IP 基础知识“全家桶”,45 张图一套带走

https://www.jianshu.com/p/9763cf3ec128

Android全新UI编程 - Jetpack Compose 超详细教程 第1弹

https://juejin.im/post/6850037262743240717

KISS原则

Keep It Simple, Stupid https://people.apache.org/~fhanik/kiss.html

裸辞一年后,我从一个宝藏社群里,找到了适合我的赚钱项目

https://www.jianshu.com/p/d48c304c79da

向下兼容
https://blog.csdn.net/wangxufa/article/details/72846362

App Bundles
https://www.sohu.com/a/273937605_733133

Android新技术集锦
https://www.jianshu.com/p/434e1fa47bd3

Android“新技术” 又来了? https://zhuanlan.zhihu.com/p/108813633

Android2018年最新前沿框架和技术 https://blog.csdn.net/pkx1993/article/details/81214741

2018Android开发经常用到的三大框架 https://blog.csdn.net/lyy666888/article/details/80094289

2019 Android开发趋势及必备技术点! https://blog.csdn.net/dodod2012/article/details/100027496

2020 年需要关注的 5 大 Android 开发技术 https://baijiahao.baidu.com/s?id=1655064289027071426&wfr=spider&for=pc

15 个 Android 通用流行框架大全 https://www.cnblogs.com/ldq2016/p/7235562.html

25类Android常用开源框架 https://www.cnblogs.com/hwb04160011/p/7027599.html

Android通用流行框架大全 https://www.cnblogs.com/popqq520/p/5498426.html

Android 资源大全中文版 https://www.cnblogs.com/androidxufeng/p/5829722.html

常用的开源框架 https://www.cnblogs.com/zyw-205520/p/5141352.html

Android版&Kotlin版RxJava2+Retrofit2+OkHttp3的基础、封装和项目中的使用 https://www.jianshu.com/p/0ad99e598dba retrofit2+rxjava2+okhttp3

Android 组件化开源app -开眼短视频(OpenEyes) https://www.jianshu.com/p/1f6b0cfd4606

2020年,初级、中级 Android 工程师可能因离职而失业吗? https://www.jianshu.com/p/6156013beed6

2019热门技术会议400个PDF资料下载!| 1024程序员节技术礼包之三 https://developer.aliyun.com/article/721829?utm_content=g_1000088935&accounttraceid=75e4b9cfd9d24c46bcb5fcf773cf811fblmw

1500+面试题+17组成长笔记 | 1024程序员节技术礼包之一 https://developer.aliyun.com/article/721809?spm=a2c6h.12873639.0.0.66acf5fey20SgH

【面小易-面经01】阿里巴巴Java开发工程师面试总结 https://developer.aliyun.com/article/715119?spm=a2c6h.12873639.0.0.1e21a034YuU2eq

程序员必下20本电子书:Java手册、Flutter最佳实践、AIoT开发手册... | 1024程序员节技术礼包之二 https://developer.aliyun.com/article/721818?spm=a2c6h.12873639.0.0.66acf5fey20SgH

最近更新:: 2025/10/23 21:33
Contributors: 罗凯文, luokaiwen