美文网首页
Android 101 for iOS Developers

Android 101 for iOS Developers

作者: superKelly | 来源:发表于2019-04-03 20:04 被阅读0次

    https://www.objc.io/issues/11-android/android_101_for_ios_developers/

    Android UI

    the action bar, the overflow menu, the back button, the share action, and more

    语言

    Java

      - java有命名空间
      - 变量用m开头,而不是 _
      - JavaDoc
      - Null 检查。oc 可以给null发消息,java不可以
      - 告别properties。如果你需要读取和写入,那么需要写get和set方法。
      - 函数命名风格,动词+名词
    

    工程结构

      -  安卓工程分两部分:
          1. Java source code :activities, fragments, views, adapters, and data (models and managers)
          2. resource:images, XML layout files, and XML value files
          3. AndroidManifest.xml 对应 Project-Info.plist,保存activities信 
         息,app姓名和配置Intents
    

    Activities

    Activities是Android app中最小的可视单位。Android OS维护一个activities stack(是否整个app只有一个栈)。若是调起其他app的activities,也会压入栈中。还有一个区别,任意在Manifest文件中合理注册的activity都可以作为app的入口,而iOS是指定一个window作为入口。model对象必须实现 Parcelable接口,才能再activities和fragments中传递数据,类似于<NSCoping>


    Fragment

    Fragment是安卓特有的元素,用来填充activities。存储state information,持有view logic。同一时间,屏幕上会有多个fragment,activity则是fragment 的controller。fragment没有自己的上下文,其与application's state之间的联系重度依赖于activity。


    List Views and Adapters

    完成一个表格功能, ListViews+ListActivity+ListFragment+Prediction。Adapter充当datasource和delegate的工作。
    getView -- 对应 -- cellForRowAtIndexPath
    安卓同样会对cell重用。


    AsyncTasks

    对应GCD


    Activity Lifecycle

    image.png

    Android的activity会随时因为什么原因被Android OS destroy,所以保存data和state非常重要,可以从onCreate中restored这些数据和状态。bundled data,savedInstanceState Intents。
    旋转的时候,lifecycle会completely resets。


    Fragment Lifecycle

    image.png

    onAttach 先于onActivityCreated,即activity在fragment创建之后创建。


    Layout

    ViewGroup* –RelativeLayout, LinearLayout, and *FrameLayout
    在onCreateView中,将layouts和fragment、activities关联起来。


    Data 数据持久化

    • Shared Preferences* <-> *NSUserDefaults
    • In-memory objects
    • Saving to and fetching from file structure via the internal or external file storage<-> saving to the documents directory
    • SQLite* <-> Core Data*

    相关文章

      网友评论

          本文标题:Android 101 for iOS Developers

          本文链接:https://www.haomeiwen.com/subject/lhrtiqtx.html