Android开发之搜Ya项目----项目结构说明

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介:


项目
搜芽移动客户端
项目包结构,日志,编码说明
作者
曾金龙
时间
2014-10-13
说明
简要说明工程结构,使用的log4j日志系统和UTF-8编码




第一部分:解决工程乱码问题
在windows下面建立工程默认是采用GBK编码的。而一般互联网公司(迅雷,包括我知道的百度等)都是采用UTF-8编码的。所以,在windows环境下面打开我们的工程会出现乱码,我们的APP也是乱码。所以需要更改编码方式为UTF-8.具体步骤如下
右击项目(seller,ExpandTabView等都是如此),选择properties菜单,在弹出的对话框的第一个选项Resource,如下图:在Text file encoding 中,选择 UTF-8)
注明:我的是ubuntu系统,默认是UTF-8,windows的可能要从Other里面去选UTF-8,具体自己摸索,不难)。




至此,编码问题解决。以后工程都采用UTF-8进行开发。通用。


第二部分:日志系统
1)Android.util.Log
日志在我们这里有两部分组成。一部分是Android.util.Log,Android默认的,它可以将日志打到DDMS的logcat里面,供我们实时观察。这也是我们开发中最主要的日志方法。快捷定位问题。
2)Log4j.
Logcat的日志会被冲掉,对于有些深层次的逻辑问题,而不是编程问题的时候,一般互联网公司都会采用输出日志到文件系统再进一步发送到某个日志服务器。搜芽采用的是log4j日志输出系统,在项目/libs/可以看到有两个jar库是log4j的。
Log4J的初始化配置,在文件com.souya.seller.app包中的sellerApplication文件中的setupLog4j()方法中配置,具体看代码,这样在APP启动,日志系统就配置好了。
log4j的作用还不大,但先架起来,一个完整的APP需要它。后续复杂了就会用得上。观察几十兆甚至几百兆的日志对与定位非必现的复杂问题会经常碰到的。
关于log4j,网上也有资料可查。


第三部分:包结构
如下图所示,简单说明现有包的结构
seller:包含几个重要的Activity,后续的Activity尽量不要放在这里。
app:APP范围内的全局类。
Askbuy:用户求购
Askbuy.widget:用户求购的UI组件
base:Fragment和Activity的基础类
cache:图片缓存系统
clothManager:布匹管理
data: 数据,主要是和服务器打交道的数据处理。
Database:数据库相关,本地SQLite的。
exception:异常处理
hotsearch:热门搜索
misc:常量
module:模块。主要是用到第三方库或者我们后续的其他库,升级库等用到。
search:搜索相关,在ActionBar上进行搜索,并自动提示等功能。
Upload:上传
util:工具
widget:常用UI组件。














 
Q& A
1:这个包结构合理么?
答:不合理,后续会继续优化,但暂时先这么做,毕竟重构是建立在代码多的驱动下做才有意义。
2:为什么这么多包?
答:后续把买家卖家都用到的放到一块。对于如clothmanager等这种功能性页面,还是会保持一个功能页面一个包的设计,每个包不会超过10个文件,逻辑一目了然。
相关实践学习
通过日志服务实现云资源OSS的安全审计
本实验介绍如何通过日志服务实现云资源OSS的安全审计。
相关文章
|
28天前
|
开发工具 Android开发
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
288 11
X Android SDK file not found: adb.安卓开发常见问题-Android SDK 缺少 `adb`(Android Debug Bridge)-优雅草卓伊凡
|
1月前
|
缓存 Unix Android开发
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
Android安卓项目调试之Gradle 与 Gradle Wrapper的概念以及常用gradle命令深度详解-优雅草卓伊凡
188 8
|
1月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
109 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
1月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
124 6
|
3月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
248 11
|
3月前
|
移动开发 Java 编译器
Kotlin与Jetpack Compose:Android开发生态的演进与架构思考
本文从资深Android工程师视角深入分析Kotlin与Jetpack Compose在Android系统中的技术定位。Kotlin通过空安全、协程等特性解决了Java在移动开发中的痛点,成为Android官方首选语言。Jetpack Compose则引入声明式UI范式,通过重组机制实现高效UI更新。两者结合不仅提升开发效率,更为跨平台战略和现代架构模式提供技术基础,代表了Android开发生态的根本性演进。
126 0
|
7月前
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
1544 77
|
4月前
|
安全 Java Android开发
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
213 0
为什么大厂要求安卓开发者掌握Kotlin和Jetpack?深度解析现代Android开发生态优雅草卓伊凡
|
存储 Java 开发工具
Android开发的技术与开发流程
Android开发的技术与开发流程
585 1
|
安全 Android开发 Swift
安卓与iOS开发:平台差异与技术选择
【8月更文挑战第26天】 在移动应用开发的广阔天地中,安卓和iOS两大平台各占一方。本文旨在探索这两个系统在开发过程中的不同之处,并分析开发者如何根据项目需求选择合适的技术栈。通过深入浅出的对比,我们将揭示各自平台的优势与挑战,帮助开发者做出更明智的决策。
224 5

热门文章

最新文章