这个世界上有两种人-从经验教训中学习的人以及听从别人建议的人。这里是我一路走来学到的一些东西,分享给大家:
1:在添加任何第三方party之前,请三思:这真的是一个成熟的项目吗?
2:如果一个东西用户看不到,就不要绘制它!
3:除非真的需要,否则别使用数据库;
4:达到65k方法数限制来的非常快,真的,非常快!不过 multidexing 可以拯救你;
5:RxJava 是 AsyncTasks 以及其它杂碎的最佳替代者;
6:Retrofit 可能是现在最佳的网络请求库;
7:使用 Retrolambda来简化你的代码;
8:把 RxJava 和 Retrofit 以及 Retrolambda 结合起来会让你酷炸天!
9:我使用 EventBus 而且它也很好,但是我并不会用太多,因为这样代码库会变得凌乱;
10:包名按照功能来,而不是按分层来;
11:把所有东西都移到 application thread之外;
12:lint 可以帮助你优化布局与布局树,这样你就能识别出那些可能已经被移除的冗余的View;
13:如果你在使用gradle,使用一切可能的方式去加速它;
14:对builds做profile reports,以便知道什么占据了编译时间;
15:使用一个 有名的 架构;
16:测试时比较花时间,但是一旦你找到诀窍它可以比不使用测试更快、更健壮;
17:使用 依赖注入 让你的app更模块化,从而更易于测试;
18:收听 fragmented podcast 将会让你受益;
19:千万别用私人邮箱作为你安卓市场的发布者账号;
20:总是使用恰当的输入类型;
21:Use analytics to find usage patterns and isolate bugs;
22:关注最新的 libraries(使用dryrun 来快速查看它们的的效果);
23:你的service应该做你所需的事情,并且尽快死去;
24:使用 Account Manager 来提示登录用户名和邮箱地址;
25:使用CI(持续集成)来构建和发布你的beta和产品apk;
26:不要运行自己的CI server,维护server是费时的事情,因为磁盘空间,安全问题,更新server以防止SSL攻击等等原因。使用circleci, travis 或者 shippable, 它们便宜,而且你也可以少担心一些事情;
27:Automate your deployments to the playstore;
28:如果一个library很大而你只需要使用其中的一部分功能,你应该寻找一个更小的来替代(比如依靠proguard );
29:不要使用多于实际需要的module。从零开始编译一个module或者仅仅是检查上个module是否最新所需要的时间几乎是加载 binary .jar/.aar依赖的4倍以上;
30:开始考虑用SVG来替代PNG ;
31:Make library abstraction classes, it’ll be way easier to switch to a new library if you only need to switch in one place (e.g.AppLogger.d(“message”) can contain Log.d(TAG, message) and later realise that Timber.d(message) is a better option);
32:监控你的连接情况以及连接类型(wifi之下更新更多数据?);
33:监控你的电源和电量(在充电的时候更新更多的数据?电量低的时候暂停更新?);
34:一个用户界面就如一个笑话那样,如果你需要解释,那么证明它并不够好;
35:Tests are great for performance: Write slow (but correct) implementation then verify optimizations don’t break anything with tests.
相关推荐
Android 应用开发流程 Android 应用开发流程是一系列复杂的步骤,需要掌握多种技术和技能。本文旨在帮助菜鸟开发者快速入门 ...通过遵循以上流程和经验总结,可以快速入门 Android 应用开发,创建高质量的应用程序。
在本项目中,我们主要探讨的是如何利用Android Studio这一强大的集成开发环境(IDE)来构建一个功能完善的答题应用。...通过这个项目,开发者可以深入理解Android应用开发的全过程,提升自己的技能水平。
在Android应用开发中,滑动选择控件(如WheelView)常常被用于创建用户友好的交互界面,特别是在需要用户选择日期、时间或者一系列预设选项的场景。本项目是一个基于Android的滑动选择控件——WheelView的实现,特别...
对整个开发过程进行回顾,总结经验教训,为后续的项目提供借鉴。 ### 参考文献 列出参考的书籍、文章或在线资源,为读者进一步学习提供指引。 综上所述,Android跑步应用开发涉及到移动应用开发的多个关键环节,...
- **项目展示:** 每个小组展示自己的作品,并分享开发过程中的经验和教训。 ### 四、讲师简介 - **Mr. Sayanth NS:** 技术培训师,拥有超过3年的培训经验,精通HTML、CSS3、PHP、JavaScript、Flutter等技术。 - ...
2. **系统研究意义**:设计这样一个应用,可以整合多种实用功能,如日程管理、资讯获取、车票查询等,满足用户多样化的需求,提高生活效率,同时为开发者提供了一个实践Android应用开发技术的平台。 3. **系统研究...
- **菜单及导航框架**:在Android应用中,菜单和导航框架是用户体验的核心部分。通常,我们会使用`NavigationView`或`DrawerLayout`来实现侧滑菜单,提供不同新闻版块的切换。 - **自定义布局**:为了满足特定设计...
在本资源中,我们主要关注的是一个基于Android...总的来说,这个"超级小猫"项目提供了Android游戏开发的实例,涵盖了Android应用程序设计、游戏编程、多媒体处理等多个方面,是学习和提升Android开发技能的宝贵资料。
- **教程特色**:全面介绍了如何使用Android Studio开发第一个应用程序。 - **实践意义**:通过实际操作加深对IDE工具的理解和应用能力。 - **适合对象**:适用于初学者快速上手开发环境搭建及基本功能实现。 3....
2011年的Google I/O大会上,Nico Weber作为Chrome团队的软件工程师,分享了他将Google Body从Web应用程序移植到Android平板电脑上的经验教训。 ### 关键技术与平台版本 #### OpenGL ES与3D图形渲染 OpenGL ES...
一个Android应用通常由多个组件构成,包括Activity(活动)、Service(服务)、BroadcastReceiver(广播接收器)和ContentProvider(内容提供者)。在这个项目中,我们可能能看到Activity的实例,它是用户界面的基础...
### 创建更加灵活的App——大众点评的技术探索与实践 #### 主题背景 随着移动互联网的快速发展,用户对移动应用的需求日益增长,同时也对产品的迭代...对于其他开发者来说,这些经验和教训都是非常宝贵的学习资源。
2. **基本概念**:讲解Android系统架构和生命周期,包括Activity、Service、BroadcastReceiver和ContentProvider四大组件在游戏中的应用。理解如何管理游戏的状态和响应用户交互。 3. **图形与动画**:Android游戏...
- 分析成功的Android应用界面,提取其设计亮点和经验教训。 - 实战项目:通过实际的界面设计项目,将理论知识应用于实践中。 通过《Android人机界面指南》的学习,开发者和设计师可以深入了解Android UI设计的...
- **Activity生命周期管理**:理解和掌握Activity的生命周期对于开发流畅稳定的Android应用至关重要。 - **UI设计与布局**:合理的设计和布局能够提升用户体验,同时也是开发高质量应用的关键因素之一。 #### 实验...
Rexsee是一个开源的Java软件包,它允许开发者利用HTML5、CSS3和JavaScript以及扩展API来开发Android应用,极大地降低了安卓开发的门槛。 **Rexsee的核心特性:** 1. **基于Android的HTML5开发平台**:Rexsee使...
2. **Android平台设置**:在Unity3D中开发Android应用,首先需要安装Android SDK和配置Unity的Android支持。这包括设置SDK路径、导入必要的Android插件,并确保你的系统满足最低的Android版本要求。 3. **用户界面...
"MyAppCode"这个压缩包很可能包含了某个开发者在实际项目中编写的Android应用源代码。下面将详细解释Android开发的一些关键知识点,这些知识点可能体现在这个代码库中。 1. **Activity生命周期**:Android应用由多...
- Android SDK(Software Development Kit)包含了开发Android应用所需的工具和库文件。 - 通过SDK Manager下载所需版本的SDK包。 - **2.1.4 ADT的安装** - ADT(Android Development Tools)是Eclipse的一个...