{"id":13630904,"url":"https://github.com/Skykai521/AndroidDeveloperAdvancedManual","last_synced_at":"2025-04-17T17:31:59.237Z","repository":{"id":42054301,"uuid":"424452546","full_name":"Skykai521/AndroidDeveloperAdvancedManual","owner":"Skykai521","description":"Android 工程师进阶手册（8 年 Android 开发者的成长感悟）","archived":false,"fork":false,"pushed_at":"2021-11-21T00:26:12.000Z","size":31,"stargazers_count":786,"open_issues_count":1,"forks_count":73,"subscribers_count":19,"default_branch":"main","last_synced_at":"2025-04-04T19:14:57.457Z","etag":null,"topics":["java"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Skykai521.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-04T02:51:44.000Z","updated_at":"2025-03-05T17:30:50.000Z","dependencies_parsed_at":"2022-08-12T03:31:09.352Z","dependency_job_id":null,"html_url":"https://github.com/Skykai521/AndroidDeveloperAdvancedManual","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skykai521%2FAndroidDeveloperAdvancedManual","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skykai521%2FAndroidDeveloperAdvancedManual/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skykai521%2FAndroidDeveloperAdvancedManual/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Skykai521%2FAndroidDeveloperAdvancedManual/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Skykai521","download_url":"https://codeload.github.com/Skykai521/AndroidDeveloperAdvancedManual/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249360030,"owners_count":21257155,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java"],"created_at":"2024-08-01T22:02:02.695Z","updated_at":"2025-04-17T17:31:58.993Z","avatar_url":"https://github.com/Skykai521.png","language":"Java","readme":"# AndroidDeveloperAdvancedManual\n# Android 工程师进阶手册（8 年 Android 开发者的成长感悟）\n\n2021 年是我做 Android 开发的第 8 年了，随着工作的不断深入，我越来越发现对于多数工程师来说，除了把技术能力搞好之外，更需要学习如何沟通，如何思考以及如何在职场中协调资源。这些能力反而更决定了一个工程师发展的上限。为此我写了这本小册子，这里我把 Android 开发的进阶分为了三个阶段，初级，中级和高级。在进行阅读之前，你可以先过一下整体的目录，如果你对某个阶段的内容早已了然于心，那么可以跳过这个阶段阅读。如果整本手册都没有感兴趣的话题，当然也就不必再看下去了。\n\n如果你有任何想法或者问题，可以通过提 issue 的方式跟我交流，同时也欢迎关注我的公众号：SkyKai ，期待你的交流！\n\n## 第一部分、初级工程师进阶\n\n初级工程师的首要任务是提高工作能力，努力向中高级工程师进阶。这个过程艰难且漫长，需要一步一个脚印的往上走，最终才能成为高级工程师。\n第一个脚印就是成为能出色完成上级布置的任务，能独立排查问题，态度积极，乐于迎接挑战的工程师。\n\n我给优秀初级工程师的定义为：“又快又好”，其中“快”指需求完成的速度快，问题响应的速度快，问题解决的速度快等等。而“好”指代码编写的质量好，工作态度好，任务完成度好等等。\n接下来我将从认知篇，知识篇与职场篇，来聊聊初级工程师如何进阶。\n\n### 认知篇\n\n* [1.1 遇到问题应该怎么办？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483844\u0026idx=1\u0026sn=d9b771a0235f536caba87a4db260d548\u0026chksm=c31aa3a5f46d2ab35d45e47181edaf4e2663997ad552ed4a9737e33a62329c906827effec662#rd)\n* [1.2 优秀工程师离不开 GitHub](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483851\u0026idx=1\u0026sn=9e1fc406ad5ba9ace950eb6560e3d772\u0026chksm=c31aa3aaf46d2abcd44d7d028196b5d182d934e41fc254621956b058da9ab107df158eed458f#rd)\n* [1.3 反编译不是高级技巧](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483857\u0026idx=1\u0026sn=e41d2c0b2bdbc3f0a4a8fed458943bd2\u0026chksm=c31aa3b0f46d2aa6b4f0ddb3ffd87bbb646d9de2a867a01db3a2a8eff380a9c2f5159386e778#rd)\n* [1.4 学会调试](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483864\u0026idx=1\u0026sn=eeac104ac113d5e2560103e57c7a6e32\u0026chksm=c31aa3b9f46d2aaf89ef18789c18599ce4d3ec990b086d471bcb6889bea8fe7945349bdf604c#rd)\n* [1.5 对自己的代码负责](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483868\u0026idx=1\u0026sn=dd1912613c6094165a31db9be0096b9e\u0026chksm=c31aa3bdf46d2aabfdfe31c452096bac90eb1544f95212b9326463031d220cd67def4676e319#rd)\n\n### 知识篇\n\n* [2.1 Activity 与 Fragment](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483884\u0026idx=1\u0026sn=3275d1f4f5507a7a16e157640ab264d3\u0026chksm=c31aa38df46d2a9b178829a260e9d0fe09c8c8515cac618efa6e02c33b915b7e055e34e3e969#rd)\n* [2.2 Handler 消息机制](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483900\u0026idx=1\u0026sn=49f19691999d7436e1073ee0eded84c8\u0026chksm=c31aa39df46d2a8be787fe577539e62e71bcb2eb8346ca450e8b635b75f1172770ec16515040#rd)\n* [2.3 理解 View 体系](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483926\u0026idx=1\u0026sn=1fbbca3d7f64fd8fadf60bd1456a2a50\u0026chksm=c31aa077f46d296183dfefb4052908d7cf6b28f503bc47a811bc2b4a5222acd8cff6e969d475#rd)\n* [2.4 自定义 View](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483936\u0026idx=1\u0026sn=6e9c09511e2f3ff9d06618555869ca68\u0026chksm=c31aa041f46d29572f26c78139a9b09e490e3bf48876d4e91008c111faac2792eb39b5a07d49#rd)\n* [2.5 动画机制](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483948\u0026idx=1\u0026sn=ae20704538806d63c93e96bc8ce85880\u0026chksm=c31aa04df46d295be60c46797f675cf8966c461ba1e19b283b9a51f350e4b72e3ebfe124cb41#rd)\n* [2.6 线程与进程](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483964\u0026idx=1\u0026sn=3937f446f553d2744c4ca5da15676007\u0026chksm=c31aa05df46d294b275b504bec6fe6b03afa6260bfee6170262bdc5161b9679bfadd49a555d1#rd)\n\n### 职场篇\n\n* [3.1 职场注意事项](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483968\u0026idx=1\u0026sn=b287196538f7f6cdde1e5ea4a4a6b5b1\u0026chksm=c31aa021f46d2937f8f70c3bf01a109552ee35de210c8c430ed040b6b6c3e4bbcabbab9f3799#rd)\n* [3.2 需求开发的完整流程](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483972\u0026idx=1\u0026sn=1a350d32e82998e24d6ff0f3a69f272b\u0026chksm=c31aa025f46d29331baf64d67c6ea3b204b7e384d86f7d6058e5bc03933898cd149c056eeaed#rd)\n* [3.3 什么时候跳槽？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483976\u0026idx=1\u0026sn=cc94a96fbed860ee07921a8c8496d2cd\u0026chksm=c31aa029f46d293f8e62d3a23aad9350762e9b6e4be2ca46a8baff8e31e4c3d1c82bcacd8e89#rd)\n* [3.4 要努力进大厂吗？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483980\u0026idx=1\u0026sn=9747c2543891afa3c29fec4ce6e6eabd\u0026chksm=c31aa02df46d293b11e4bf78fe7720a0964a54897a67ba29029f8ae98c8f3c9516d06676ea51#rd)\n* [3.5 如何准备面试？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483984\u0026idx=1\u0026sn=4aac7454054d469d87d780c57d779a19\u0026chksm=c31aa031f46d2927264b63df4dc72fb84e39f7b982bcafc45161f9a2df93670795ea3b5f81e1#rd)\n* [3.6 如何选择 Offer ？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483988\u0026idx=1\u0026sn=efb009a643acae6aff26584c8bd42743\u0026chksm=c31aa035f46d292397f45b6db80eeff41677694bc62937b6821029252cf788b9d17ab1458a52#rd)\n\n\n## 第二部分、中级工程师进阶\n\n\n初级工程师只要又快又好的完成任务就可以，中级工程师阶段不仅要又快又好，还要能独当一面。独当一面是要能独立负责一个项目，或者一个独立业务。并在遇到问题时可以独立解决，成为最熟悉自己负责业务的那个人。\n\n中级工程师开始要注重代码规范，学习更底层的知识，一般还要指导初级工程师。同时要懂得更多职场规则，并做好长远的职业规划。\n\n### 认知篇\n\n* [4.1 如何引入开源项目](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483992\u0026idx=1\u0026sn=ccce3c3125c82fc491f7b3613e0e8949\u0026chksm=c31aa039f46d292fea9adb6cfcd082e992bdca741c5be2560822d480da93848ffbeddc9db70d#rd)\n* [4.2 如何快速排查问题](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247483996\u0026idx=1\u0026sn=5fb7560e68335c89c84f15b5df612f2a\u0026chksm=c31aa03df46d292ba67382b441e59385abc02ccd8870ed6c8440a9fbf2b70d72366160715a3a#rd)\n* [4.3 怎样写出漂亮的代码](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484003\u0026idx=1\u0026sn=285e0c949e73045e7ae480fc257c2806\u0026chksm=c31aa002f46d2914ce8380bd1f88b5965e59540f98925fb104fc06154b66cbacb28703ac1079#rd)\n* [4.4 怎样写好注释](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484010\u0026idx=1\u0026sn=934f37bdad0c3ebb281efde15c007aa2\u0026chksm=c31aa00bf46d291d1ba4c82825dd24d7f1283f475c4189fdeeb919e851313f7f950bff284de5#rd)\n* [4.5 代码出 Bug 该怎么办？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484014\u0026idx=1\u0026sn=5d3878139f8aa49cb8fe087f89a2cc26\u0026chksm=c31aa00ff46d291990e1e2a59b8f66d9431022a84f2c549a6075beb8517638f3bd443d5de2f6#rd)\n* [4.6 怎样才能少出 Bug ？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484018\u0026idx=1\u0026sn=0568f7d052b9d3b29ce1ba1f35ea9f31\u0026chksm=c31aa013f46d2905dde1e4a3c65030b3b0769cb6fb81d6d3a573208749d994f66d646a5a1b54#rd)\n* [4.7 业务开发与架构开发](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484022\u0026idx=1\u0026sn=d526b326c961c2026090a1ac742c7e23\u0026chksm=c31aa017f46d29017dc36fa3dd44eb5d4a6e94e67598124b6e61c3d7207dbf77a3afe7793443#rd)\n\n### 知识篇\n\n* [5.1 进程间通信](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484038\u0026idx=1\u0026sn=2015163a037597136dcc8b8497ce248c\u0026chksm=c31aa0e7f46d29f137c1c06ee5374d401d08e4f42feff1262c274e9f72c493b427b7046d32da#rd)\n* [5.2 热修复技术](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484046\u0026idx=1\u0026sn=071c7246e60a32c1dc163c6037aa1c07\u0026chksm=c31aa0eff46d29f9b54a8cb1ebf5575567cc6072b0f68438438384aa310934b42987f943ad7f#rd)\n* [5.3 常用设计模式](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484057\u0026idx=1\u0026sn=fc9bde6fbf4a3eea6dc7aec82cfa5495\u0026chksm=c31aa0f8f46d29eebf63fab507299b3a120eedcea43ee670b5ea58c73c57c00bfa26047fa5f3#rd)\n* [5.4 常用架构模式](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484071\u0026idx=1\u0026sn=df15a56a90644e795630aea3f3d47c75\u0026chksm=c31aa0c6f46d29d0558b44f4d1731cacb94e8a09152c5174f558c966ab32554cb5fc66498842#rd)\n* [5.5 如何优化应用启动性能](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484080\u0026idx=1\u0026sn=9dd830ae61a90d30f80a71e5d916ec8d\u0026chksm=c31aa0d1f46d29c78929241f4e56493396b81d5ee5ec02f0db3fa9a82da06db563f50f0c618c#rd)\n* [5.6 经典开源项目解析](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484106\u0026idx=1\u0026sn=0ae670e83b45a3466c8e66a1fb0d6e49\u0026chksm=c31aa0abf46d29bd049db987438251dbabf2ccdb292fa4f51efd1e92ff2c5247dee33b884a46#rd)\n\n### 职场篇\n\n* [6.1 职场沟通技巧](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484110\u0026idx=1\u0026sn=9a0a216251dc01c35649d5ed7f1164aa\u0026chksm=c31aa0aff46d29b9eacedc42ff8f1c9716a1ffcb766d3aeb3a85f0508986c695afbd52285210#rd)\n* [6.2 做好一个需求的要点](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484114\u0026idx=1\u0026sn=a86e154d89e671a09f6d67d6e3f6e4f9\u0026chksm=c31aa0b3f46d29a518614059ca93e6f3498884a0afee7e3661e024e4484f5026a1e8bb21223b#rd)\n* [6.3 做好长期规划](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484118\u0026idx=1\u0026sn=0df29d42df1273a36fa2176239d460de\u0026chksm=c31aa0b7f46d29a19b464fd95d15dfa9b93e968e59113e2d6d6195946b0259034d518f5b0e79#rd)\n* [6.4 要不要拒绝 996 ？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484122\u0026idx=1\u0026sn=cdb1dc3ff32c2d532ccced4f00d97c2e\u0026chksm=c31aa0bbf46d29ad2cbe1112e1e205813684fd275b7c279685555c1c4afce0b7d523ab08de4d#rd)\n\n\n## 第三部分、高级工程师进阶\n\n高级工程师阶段，无论是编程能力还是业务能力，你都具有了一些不可替代性。你通常负责新技术的预研，重要需求推进以及新项目的技术选型。高级工程师会让老板和同事觉得：非你不可。你更多的时间是在解决别人解决不了的事情，尝试业界还未尝试过的方案以及帮助其他工程师成长。\n\n到了这个阶段编程语言已经不重要了，一切选择都为了业务更好的发展。同时也要考虑更多代码之外的事情了。\n\n### 认知篇\n\n* [7.1 高级工程师的特点](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484126\u0026idx=1\u0026sn=9e8ec0b26bb3342c429cae92cf2a92ae\u0026chksm=c31aa0bff46d29a95ed1c56c0cbf5b1b10cb454368469c5018943b1caa46a133154f033cedce#rd)\n* [7.2 参与开源项目](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484130\u0026idx=1\u0026sn=8c6c9c25e5978a17ffcff674599b4bf9\u0026chksm=c31aa083f46d2995082430c8a9ac1ed8ad3fd0d5bf08f0ce737630b13a81759528478adb0cd0#rd)\n* [7.3 如何判断技术发展趋势](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484134\u0026idx=1\u0026sn=7f5eb2187b20126cd7957e5d74ec59b4\u0026chksm=c31aa087f46d299103702bb6a7547078e3f3b25f224a324fdf141312be9c4f17f008815dd588#rd)\n\n### 知识篇\n\n* [8.1 了解跨平台开发](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484140\u0026idx=1\u0026sn=8f6521d1dd820bb3f16278bac27a4deb\u0026chksm=c31aa08df46d299ba908321e4ccecd4597a3240c7ba891f7b09606639c502a32e53d7c52c7a7#rd)\n* [8.2 Flutter 是跨平台的未来吗？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484144\u0026idx=1\u0026sn=7376b6d7c3ce758f09808a29006ba029\u0026chksm=c31aa091f46d29878cabd9ed2d2ff7ca5004f4d126b83218bec1abd377d27002776c177a0b44#rd)\n* [8.3 最优跨平台方案是什么？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484148\u0026idx=1\u0026sn=f600fc2f14cbd3b3fe8a1152ad53e4ff\u0026chksm=c31aa095f46d29831021ac6cce62f3fdb6f98c2b8e7693f77b7083e0b58f81b58b26a1158635#rd)\n* [8.4 大型项目架构解析](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484152\u0026idx=1\u0026sn=b2b52b55722389f73c98331d80bcbe23\u0026chksm=c31aa099f46d298f78cfdbe8a54d242d68eb773aed580406337349b779f8a3d134178a546f1b#rd)\n* [8.5 构建移动开发平台](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484156\u0026idx=1\u0026sn=7a10e4c1d7abb5cb5a5b36e9f9fac494\u0026chksm=c31aa09df46d298b2a2a62803a2b98ffb96cfe683ad18636af5802286d85ba7e685085c3b878#rd)\n\n### 职场篇\n\n* [9.1 如何成为项目核心](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484160\u0026idx=1\u0026sn=cc96a99703996f3f52081cbdfe0a7349\u0026chksm=c31aa161f46d2877002e8e67d9128a061cbcf0b7bb015420edf34b52894af5ecf9c564014ce2#rd)\n* [9.2 工资要存起来，理财还是买房？](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484166\u0026idx=1\u0026sn=46dce8d4fb6ebed4e0c9c9104c45d167\u0026chksm=c31aa167f46d2871a2a8dd01d0908e40310876dbc0431a6bda97bdcd5b7002c8e63b55b94b2c#rd)\n* [9.3 如何面对35岁问题](http://mp.weixin.qq.com/s?__biz=Mzk0NTAxMDQ0Ng==\u0026mid=2247484173\u0026idx=1\u0026sn=c813174dea46bbcc870825ccaecbad58\u0026chksm=c31aa16cf46d287a18ca77133e73ef065beea68a3f13bdd0911479baff3019bc28fc357921c3#rd)\n","funding_links":[],"categories":["Java"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkykai521%2FAndroidDeveloperAdvancedManual","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSkykai521%2FAndroidDeveloperAdvancedManual","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSkykai521%2FAndroidDeveloperAdvancedManual/lists"}