不知道有没有“官方”约定。
我目前使用的包结构:
单个应用程序类的“root”(通常等于 appId)包。
如果应用由一项活动、一项服务组成,那么它们也可以放在这里。
然后,“root”。component_name 如果您的应用程序包含许多分离的重组件(通常不包含),它们包含自己的活动、模型等,则为“root”。
“根”包或每个组件的包包含:
-
activity 用于活动和片段
-
app。此外,有时我会创建 app 包,其中可以包含活动、片段、服务和其他 Android 应用组件的基类。
-
view 用于视图和适配器
-
model 包含业务逻辑。包含接口、实体、DTO。
-
model.impl:时不时用。它包含模型实现(包可见性)
-
helper 或 util。
-
helper 包含特定领域的内容。作为旁注:通常我会尝试通过将辅助逻辑封装到域数据类型中来避免使用它们。
- 包
util 通常转到“根”包。
app。
上次我开始使用 async 或 model.async 包来描述异步计算、后台作业等的类。
我并不总是对这种结构感到满意。所以,
我看看类是如何在 android api 中分组的。
我也喜欢发现我最喜欢的库和框架的结构。
示例:
org.android.exampleapp.app
BaseActivity.class // provide access to MyService
BaseFragment.class
org.android.exampleapp.activity
LaunherActivity.class // extend BaseActivity and BaseFragment
MainActivity.class
MyDetailsFragment.class
MyListFragment.class
org.android.exampleapp.model
SuperItem.class
MyService.class
org.android.exampleapp.model.impl
MyServiceOfflineImpl.class
MyServiceOnlineImpl.class
org.android.exampleapp.async
GetSuperItemsTask.class