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个文件,逻辑一目了然。
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
18天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
24天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
|
6天前
|
搜索推荐 前端开发 API
探索安卓开发中的自定义视图:打造个性化用户界面
在安卓应用开发的广阔天地中,自定义视图是一块神奇的画布,让开发者能够突破标准控件的限制,绘制出独一无二的用户界面。本文将带你走进自定义视图的世界,从基础概念到实战技巧,逐步揭示如何在安卓平台上创建和运用自定义视图来提升用户体验。无论你是初学者还是有一定经验的开发者,这篇文章都将为你打开新的视野,让你的应用在众多同质化产品中脱颖而出。
33 19
|
10天前
|
Java 调度 Android开发
安卓与iOS开发中的线程管理差异解析
在移动应用开发的广阔天地中,安卓和iOS两大平台各自拥有独特的魅力。如同东西方文化的差异,它们在处理多线程任务时也展现出不同的哲学。本文将带你穿梭于这两个平台之间,比较它们在线程管理上的核心理念、实现方式及性能考量,助你成为跨平台的编程高手。
|
26天前
|
Android开发 Swift iOS开发
探索安卓与iOS开发的差异和挑战
【10月更文挑战第37天】在移动应用开发的广阔舞台上,安卓和iOS这两大操作系统扮演着主角。它们各自拥有独特的特性、优势以及面临的开发挑战。本文将深入探讨这两个平台在开发过程中的主要差异,从编程语言到用户界面设计,再到市场分布的不同影响,旨在为开发者提供一个全面的视角,帮助他们更好地理解并应对在不同平台上进行应用开发时可能遇到的难题和机遇。
|
26天前
|
存储 API 开发工具
探索安卓开发:从基础到进阶
【10月更文挑战第37天】在这篇文章中,我们将一起探索安卓开发的奥秘。无论你是初学者还是有经验的开发者,这篇文章都将为你提供有价值的信息和建议。我们将从安卓开发的基础开始,逐步深入到更复杂的主题,如自定义组件、性能优化等。最后,我们将通过一个代码示例来展示如何实现一个简单的安卓应用。让我们一起开始吧!
|
6天前
|
Java Android开发 开发者
探索安卓开发:构建你的第一个“Hello World”应用
在安卓开发的浩瀚海洋中,每个新手都渴望扬帆起航。本文将作为你的指南针,引领你通过创建一个简单的“Hello World”应用,迈出安卓开发的第一步。我们将一起搭建开发环境、了解基本概念,并编写第一行代码。就像印度圣雄甘地所说:“你必须成为你希望在世界上看到的改变。”让我们一起开始这段旅程,成为我们想要见到的开发者吧!
13 0
|
缓存 安全 开发工具
Android 解决bug:Android studio 运行、编译项目时导致电脑死机
Android 解决bug:Android studio 运行、编译项目时导致电脑死机
919 0
|
Android开发
Android Studio在android Emulator中运行的项目黑屏
Android Studio在android Emulator中运行的项目黑屏
761 0
Android Studio在android Emulator中运行的项目黑屏
|
Android开发 开发者 Windows
Android Studio运行项目
一、在真机上运行(Mac没得) 二、Android Studio自带模拟器(AVD)安装以及运行项目 三、在模拟器上运行
655 0
Android Studio运行项目