工具链

  • 编程语言

    • Java/Kotlin
    • C/C++(NDK方向,源码阅读)
    • SQL(DB)
    • HTML/JS(Hybrid/Web App)
  • 操作系统

    • Linux/macOS/Windows
  • IDE:

    • Android Studio为主
    • Eclipse
  • 网络调试

  • 内存分析

  • 综合分析(CPU、Network、Memory、GPU):

    • Android Studio Monitors
  • Android Tools

  • 代码管理

    • 版本管理
    • Code Review:
      • Gerrit
      • Git托管系统比如(github/gitlab/oschina/coding)的Pull Request
      • Android Studio VCS git log
  • 团队协作

    • Teambition
    • Tower
    • git issues
  • 编译工具

  • 持续集成、分发

    • Jenkins
    • Travis CI
  • 早期测试分发

    • fir.im
    • 蒲公英

App初级入门

  • 基础组件

  • UI

    • View/ViewGroup
    • Widgets
    • Resources(res/assets)
    • Animations
  • Connectivity

    • WiFi/AP
    • Cellular Network(connectivity changed)
    • Bluetooth
  • MultiMedia

    • Audio Encoding/Decoding
    • Video Encoding/Decoding
    • Camera Recording
    • Gallery
  • LBS

    • GPS
    • AGPS(Cellular Network)
    • Map SDK

App中级进阶

  • Process/Thread/Runnable

  • UI优化

    • ANR: Broadcast/Input Events
    • UI Layout 层次优化
    • Bitmap 分辨率裁剪
  • 内存管理

    • Soft/Weak References
    • 内存分析、泄露检测
  • 网络优化

    • 网络请求压缩(gzip等)
    • 善用HTTP协议,使用PATCH等
    • 流量使用
      • 根据网络类型选择不同分辨率图片素材
      • 使用缓存
  • 测试

    • Android Studio使用不同Product Flavor提供测试方案
    • UI模拟测试
    • API单元测试

App高级提升

延伸通用基础

  • 响应式编程

    • RxJava & RxAndroid & RxBinding
  • 网络知识

    • TCP/IP
    • HTTP
    • Socket
    • 抓包调试