【问题标题】:Android application with subset of Activities具有活动子集的 Android 应用程序
【发布时间】:2014-06-18 21:54:05
【问题描述】:

我有一个现有的 Android 应用程序。
我想从现有的应用程序中提取另一个应用程序,以便它只包含原始活动的某个子集。

最好的方法/方法是什么?

这两个应用程序将同时得到积极维护,那么最佳方式是什么才能尽可能减少开销?
我的开发环境是 Android Studio + gradle ...我应该创建另一个变体吗?..从那时起,我应该只定义源文件夹吗?我可以只更改 AndroidManifest 并使用原始活动的子集吗?
谢谢

【问题讨论】:

    标签: android android-activity subapplication


    【解决方案1】:

    您可以做的最好的可能是将应用程序的公共部分(在本例中为活动)提取到库项目中,然后,如果您需要具体应用程序中的特定行为,只需从公共类中继承以适应你的需求。

    http://developer.android.com/tools/projects/index.html

    【讨论】:

    • 感谢 Mattia 的回答,但我相信也许有比将所有常见活动转移到图书馆项目更有效的方法。
    • 如果您需要在项目之间共享代码,我认为这是您唯一可以做的事情。另外,因为你使用的是AS+Gradle,所以可以通过Maven编译依赖(gradleware.com/resources/tech/android
    【解决方案2】:

    我最终采用的方法是创建一个像这样的新变体:

    flavorGroups "features"
    productFlavors {
            normal {
                flavorGroup "features"
            }
    
            stripped {
                packageName "other.package"
                flavorGroup "features"
            }
    }
    

    我只是通过从每个变体发送不同的意图来更改活动转换(我为每个变体创建了单独的源文件夹,即

    src/main、src/stripped、src/normal 等

    我相信这是最快的方法,并且具有能够自定义常见活动中的小部分的优势,而不是提取库项目并拥有两个相同活动的副本只是为了进行小的自定义。

    【讨论】:

      猜你喜欢
      • 2021-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多