android app 程序设计思路小结

android app 程序设计思路小结

一、model设计与实现

建立业务POJO,比如user

public class User{
    private int userId;
    private String userName;

    public User(int userId, String userName){
        this.userId = userId;
        this.userName = userName;
    }

    public void setUserId(int userId){
        this.userId = userId;
    }

    public void setUserName(String userName){
        this.userName = userName;
    }

    public int getUserId(){
        return this.userId;
    }

    public String getUserName(){
        return this.userName;
    }

}

二、net网络交互接口设计与实现

1,请求格式定义。

http://192.168.1.31/CommandHandler.ashx
{
"MessageContent":"{‘CourierId‘:‘652‘,‘TrackingY‘:31.174406,‘Province‘:‘上海市‘,‘District‘:‘闵行区‘,‘City‘:‘上海市‘,‘TrackingX‘:121.39061,‘Address‘:‘上海市闵行区万源路2163号‘}",
"Passport":"mWEKICmWIVD0YRGXMSRC5HH7SYVMIVlVEGOMRK",
"Function":"AddCourierTracking",
"Usage":"User"
}

2,返回格式定义

{
"ResultFlag":1,
"ErrorMessage":null,
"Passport":"mWEKICmWIVD0YRGXMSRC5HH7SYVMIVlVEGOMRK",
"MessageContent":{
\"Result\":null,
\"ResponseStatus\":{
\"ErrorCode\":\"1\",
\"Message\":null,
\"StackTrace\":null,
\"Errors\":null
}
}
}

3,实现方法需要适配多样情形(方法重载),内部实现需要避免重复(内聚)。

public class NetUtil{

    public static void doPost(Context context, HashMap<String,String> map, Handler handler, Callback callBack){
        doRequest(context, map, handler, callBack);
    }

    public static void doGet(Context context, Handler handler, CallBack callBack){
        doRequest(context, null, handler, callBack);
    } 

    private static void doRequest(Context context, HashMap<String,String> map, Handler handler, Callback callBack){
        ...
    }
}

三、UI界面框架

1,定义自己的超类,比如MyActivity, MyFragment

public class MyActivity extends Activity{

}

2,建立超类链(),分别插入日志、Toast、进度条、导航栏,标题栏等共用UI元素,分开插入是为了方便拓展和去掉。

public class LoggableActivity extends Activity{

    protected static String TAG = this.getClass.getSimpleName();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        LogUtil.log(TAG,"onCreate()");
    }

}

3,分别实现各个页面,继承自最低级别的超类。

public class LoginActivity extends LoggableActivity{}

4,Adapter,service,broadCast等类似。

四、管理数据

1,使用ContentProvider。

2,使用Sqlite。

3,文件方式存储(SharedPerference、sd卡)需要添加加解密。

4,使用内存缓存策略,比如LRU算法。

五、发布和proguard

1,所有被androidmanifest.xml定义的类不能混淆,所以关键业务逻辑实现要移除被调用类。

2,引用的第三方包不能混淆。

时间: 2024-10-19 18:02:37

android app 程序设计思路小结的相关文章

Android app开发知识小结

Android知识小结 这是一个知识的总结,所以没有详解的讲解. 一.分辨率Android中dp长度.sp字体使用.px像素.in英寸.pt英寸1/72.mm毫米 了解dp首先要知道density,density是一个抽象的单位,density值表示每英寸有多少个显示点,与分辨率是两个概念QVGA屏density=120         QVGA(240*320)HVGA屏density=160         HVGA(320*480)WVGA屏density=240        WVGA(

Android App的设计架构:MVC,MVP,MVVM与架构经验谈

来源: Android App的设计架构:MVC,MVP,MVVM与架构经验谈 和MVC框架模式一样,Model模型处理数据代码不变在Android的App开发中,很多人经常会头疼于App的架构如何设计: 我的App需要应用这些设计架构吗? MVC,MVP等架构讲的是什么?区别是什么? 本文就来带你分析一下这几个架构的特性,优缺点,以及App架构设计中应该注意的问题. 1.架构设计的目的 通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合.这样做的好处是使得程序在开发的过程中,开发人员

Android基础入门教程——1.2.1 使用Eclipse + ADT + SDK开发Android APP

Android基础入门教程--1.2.1 使用Eclipse + ADT + SDK开发Android APP 标签(空格分隔): Android基础入门教程 1.前言 这里我们有两条路可以选,直接使用封装好的用于开发Android的ADT Bundle,或者自己进行配置 因为谷歌已经放弃了ADT的更新,官网上也取消的下载链接,这里提供谷歌放弃更新前最新版本的 ADT Bundle供大家下载! 2.直接使用打包好的Eclipse 32位版:adt-bundle-windows-x86-20140

Android App补丁更新

上一周比较忙,忙的不可开交,写的文章也就两篇,在此希望大家见谅.这周呢,突然闲下来了,有时间了,就重构了下代码,捣鼓点前卫的技术,沉淀沉淀.所以呢,今天就分享下这几天研究的东西. 移动互联网主打的就是用户体验和产品的快速迭代,通过用户反馈和用户行为跟踪及时调整产品方向,这样才能持续保持生命力和创造力.说的接地气点就是,你频繁的升级更新,有时只是修复了几个bug或者微调了下界面,就让用户下载10几兆甚至更大的apk,而且在目前国内这个4G还不是普及的时候,对用户来说是很不友好的.有没有这样一种策略

Android APP压力测试(二)之Monkey信息自动收集脚本

Android APP压力测试(二) 之Monkey信息自动收集脚本 前言: 上一篇Monkey介绍基本搬抄官方介绍,主要是为了自己查阅方便.本文重点介绍我在进行Monkey时如何自动收集相关信息,主要收集Monkey测试日志.手机日志.手机屏幕截图.测试手机信息,自动按次按时间点保存信息.只需轻轻一点,腾出手腾出脑想干吗干吗,执行结束应该有信息的都有收集,一定程序提升了效率,节约了时间.可以偷空看看美图.聊天扯淡...哦不,是学习提高审美观,沟通交流增进同事情感... 转载请注明出处:Find

开源项目 apk cfg and android app path profiling

暑假里面完成的一个小项目,limitation还是挺多的. 期待未来有更大的motivation 去完善它.通过此次的项目设计,对于smali的语法更加了解了,对于进一步学习android app的安全有更好的帮助. 项目已经上传到了github:https://github.com/desword/apk-CFG 一下内容的ppt上传csdn了: 1.首先是构造app cfg的思路: 2.接着是构造path profiling 的思路: 3.接着对profiling的三个主要方法进行介绍:逆向

android Touch事件传递小结

这次还是先贴上测试代码吧.. 主布局文件是个三层结构,最外层和中间层都是LinearLayout的子类,里层是个TextView: <com.example.touchevent.OutterLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/o

Android App集成支付宝

原地址:http://blog.csdn.net/wenbingoon/article/details/7933078 手机的在线支付,被认为是2012年最看好的功能,我个人认为这也是移动互联网较传统互联网将会大放光彩的一个功能.人人有手机,人人携带手机,花钱买东西,不再需要取钱付现,不再需要回家上网银,想买什么,扫描一下,或者搜索一下,然后下单,不找零,直接送到你家,这将是手机支付给我们带来的全新交易体验.谷歌刚推出了谷歌钱包,这必是我们后面要使用的主要手段,但是鉴于当前国情,我觉得有必要介绍

一看就懂的Android APP开发入门教程

一看就懂的Android APP开发入门教程 作者: 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Android APP开发入门教程,从SDK下载.开发环境搭建.代码编写.APP打包等步骤一一讲解,非常简明的一个Android APP开发入门教程,需要的朋友可以参考下 工作中有做过手机App项目,前端和android或ios程序员配合完成整个项目的开发,开发过程中与ios程序配合基本没什么问题,而android各种机子和rom的问题很多,这也让我产生了学习android和ios程序开发的