我有一个应用程序,这已经是为大型设备,即10英寸平板电脑和亭。我为手机做了同样的设计,但这看起来不太好,所以我想把移动设备移到材料设计上,其余的设备(平板电脑和信息亭)将保持不变。
我知道如何为不同的设备做不同的布局,比如普通的、大型的和x-大的,但是我担心代码。所以基本上以下是我的困惑..。
我还搜索过stackOverflow,只找到了这两个接近我问题的链接,但其余的链接是关于不同的布局,而不是代码:
我希望我的问题安静,清楚,请用一些真实的理由和链接来回答我的这些问题。
发布于 2016-11-18 22:08:34
一个应用程序的多个app在Google中得到支持。但是,除非您的应用程序非常大(大于100 is ),否则他们建议您为所有设备发布一个apk。
所以您需要在运行时检查屏幕大小。您可以通过按类别分列 ( 设备无关像素 )或即使是英寸来完成这个任务。然后,正如您所说的,您将相应地加载适当的布局和片段。
即使要使用不同的apks,也可能以类似的方式进行,因为您可能希望共享一些代码。
在Gradle中,您将为每个apk创建productFlavors,以及一个变量来定义构建,如下所示:
productFlavors {
bigtablet {
buildConfigField "String", "deviceType", "\"bigtable\""
}
smalltablet {
buildConfigField "String", "deviceType", "\"smalltable\""
}
}然后,在运行时,您将使用BuildConfig.deviceType驱动与one apk方法中屏幕大小完全相同的逻辑。使用此方法,Gradle将从每个apk中删除所有未使用的代码。
最后一个选项是为每个apk创建完全不同的项目。将所有共享代码推入库中。
现在,您可以将其放在一个apk中,如果apk太大,则切换到多个productFlavors。既然逻辑是相似的,那就不难说了。希望这能有所帮助。
发布于 2016-11-20 08:30:03
支持库的设计是为了尽量减少您需要做的工作,以检测运行应用程序的Android版本中的差异。例如,支持库中有RecyclerView。在此和layout-xxx文件夹之间,通常可以为所有API级别和设备窗体因素构建一个APK。
https://stackoverflow.com/questions/40480549
复制相似问题