基于Android的高校饮水宝app

 这是一个高校饮用水配送项目,是一个毕业设计,去年的,包括了服务端和客户端,是一个不错的项目,分享一下:

  

  随着通讯行业的迅猛发展,我国的手机用户也在不断的增加。据信息部的统计数据显示,我国已有接近7.4亿手机用户。随着手机群体的日益壮大,Android系统的出现,给移动互联网时代带来了新的发展。为了适应现代信息时代的需求,采用新信息技术,研究设计了一个基于Android平台的高校饮用水配送管理系统。

  基于Android平台的高校饮用水配送管理系统是手机的一款网络应用软件,目的在于为高校广大学生提供便利,通过手机支付宝或微信进行支付,管理端接收订单,安排派送。这样大大便利了学生的生活。

前面这些废话不多说,直接进入系统开发环节:

一、 系统设计

本节将详细介绍系统的整体设计。

下面是的整体系统架构图

饮水宝主要设计采用滚雪球的开发模式,不多说了。

1 . 用户模块

用户模块的设计思路主要是为了方便用户在线订水而设计,该模块又划分为6个子模块,分别是在线订水、订单查询、信息管理、在线支付、服务评价、查询评论,下面对这几个模块具体介绍:

(1)     在线订水

在线订水主要是为了满足在校大学生可以足不出户就可以完成订水的需求,可以大大方便学生的生活。

(2)     订单查询

订单查询模块,主要是满足用户在线查询自己订单情况,及时掌握预定的桶装水的位置及送达的时间

(3)     信息管理

信息管理模块主要是满足用户修改自己的信息,包括宿舍号,电话号码,密码等等

(4)     在线支付

在线支付模块用于支付订单信息,可以实现交易无纸化,该模块预期完成微信和支付宝两种主流在线支付模式的接口对接

(5)     服务评价

服务评价模块主要是为了方便用户对饮水公司的服务情况进行反馈,一是方便广大用户满足自己发声的需求,另一方面也可以方便饮水公司改进自己的服务质量

(6)     查询评论

查询评论这一模块主要是为了方便用户查看其他用户对饮水公司的评价,以实现消费前货比三家的消费习惯,帮助自己决策是否购买该饮水公司的饮用水。

2. 管理员模块

管理员模块实际上提供给饮水公司使用的模块,通过这个模块,饮水公司可以在线管理订单,及时发水给学生。方便快捷,还可以对库存进行管理。特别方便实用。该模块主要分为管理订单,查看评论,库存管理三个模块,下面分别进行介绍:

(1)     管理订单

管理订单模块主要是为了方便饮水公司在线管理自己的订单,通过管理订单可以做到及时发货,以满足学生们的饮水需求

(2)     查看评论

查看评论模块主要是为了方便饮水公司搜集用户满意度,以给自己做出服务方式转变的决策提供依据,不断提高服务水平。

(3)     库存管理

库存管理模块可以方便饮水公司对自己的库存量进行管理,以满足科学管理,平衡供求关系的目的。

二、系统实现

在系统设计的基础上,下面具体讲解每一个模块的详细实现过程。

  1. 数据库设计与实现

数据库是整个系统的最基础的部分,包括用户信息,订单信息,库存信息,评论信

息等都包含在数据库里面,所以这里首先讲解数据库的设计与实现。

首先是,数据库表的设计:

表1 : User

说明:User表存放的是用户有关信息


列名


类型


是否主键


说明


Id


Int



主键,自动增长


Name


Text



用户登录账户


Pwd


Text


密码


address


Text


地址


Tel


Text


电话

表2 : Dingdan

说明:Dingdan表存放的是订单的信息


列名


类型


是否主键


说明


Id


Int



主键,自动增长


Name


Text



客户


Num


Int


数量


address


Text


地址


Tel


Text


电话

表3 : KuCun

说明:KuCun表放的是有关库存的信息


列名


类型


是否主键


说明


Num


Int



总量


Ok


Int



完好的库存


Old


Int



损坏的库存

表4 : Commnet

说明:Comment存放的是用户评论信息


列名


类型


是否主键


说明


Id


Int



编号


Name


Text



发布评论的人


Content


Text



评论的内容

以上便是数据库的设计,下面介绍一下实现过程,数据库的实现代码位于工程文件的”com.ysb.dao”包下的MyDBHelper.java文件,这里的数据库主要采用Sqlile数据库,是一个轻量级的数据库,使用极为方便,下面简要介绍主要实现代码:

数据库的创建,建立数据库,创建表:


public void onCreate(SQLiteDatabase db) {

//   TODO Auto-generated method stub

db.execSQL("CREATE
  TABLE IF NOT EXISTS COMMENT  (_ID   INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT,CONTENT TEXT,TI TEXT)");

db.execSQL("CREATE   TABLE IF NOT EXISTS USER     (_ID   INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT,PWD TEXT,ADDRESS TEXT,TELEPHONE   TEXT)");

db.execSQL("CREATE   TABLE IF NOT EXISTS DINGDAN  (_ID   INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT,TEL TEXT,ADDRESS TEXT,NUM   TEXT,THETIME TEXT)");

db.execSQL("CREATE   TABLE IF NOT EXISTS YUANGONG (_ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME   TEXT,SEX TEXT,TELEPHONE TEXT)");

}

插入数据,以插入用户数据为例:


public void insertUser(ContentValues   values){

SQLiteDatabase   db=getWritableDatabase();

db.insert("USER",   null, values);

db.close();

}

查询数据,以查询评论信息为例:


public Cursor queryComment(){

SQLiteDatabase   db=getWritableDatabase();

Cursor   c=db.query("COMMENT",null,null,null,null,null,null);

return   c;

}

有了数据库的基础,在接着继续完成其他功能。

  1. 登陆模块实现

登陆模块没有在在整体设计里面体现,因为这个模块式独立于整体,和管理员和用户都有关系,所以在这里单独拿出来进行分析。登陆模块主要是完成登陆的判定,判断用户类型,判断用户密码,用户名是否正确,和数据库的查询链接紧密。下面详细讲解登陆模块的设计,主要分为UI设计和逻辑功能设计

(1)       UI界面设计

设计采用XML分离布局技术,UI设计和逻辑设计分离开来,使得代码更加可控,

下面简要介绍一下界面的代码,以一个按钮为例,由于代码较多,故在后面的模块分析中就不一一展示代码了:

以登陆按钮的控制代码为例:


<LinearLayout

android:id="@+id/btnLayout"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_below="@+id/layout06"

android:layout_marginLeft="10dip"

android:layout_marginRight="10dip"

android:layout_marginTop="10dip"

android:orientation="horizontal" >

<Button

android:id="@+id/loginBtn"

android:layout_width="fill_parent"

android:layout_height="45dip"

android:background="@drawable/button_selector_btn"

android:text="@string/login"

android:textColor="@color/white"

android:textSize="18sp" />

</LinearLayout>

下面是UI设计的效果图:

逻辑设计,

首先判断用户类型,在通过数据库查询是否是合法用户,确保其通过。下面是实现代码:


@Override

public   void onClick(View arg0) {

//   TODO Auto-generated method stub

String   mStr_name =    userName.getText().toString();

String   mStr_pwd  =  userPwd.getText().toString();

User   user        =    User.getInstance(mStr_name,mStr_pwd);

//查询是否有这个用户

//MyDBHelper   helper=new MyDBHelper(this);

if(mStr_name.equals("admin")   && mStr_pwd.equals("admin")){

Intent   intent=new Intent(getApplicationContext(),AdminMainActivity.class);

user.setName("管理员");

startActivity(intent);

}else{

Cursor   c = helper.queryUser();

if(c.moveToFirst()){

for(int   i=0;i<c.getCount();++i){

c.move(i);

String   name=c.getString(1);

String   pwd=c.getString(2);

if(mStr_name.equals(name)&&mStr_pwd.equals(pwd)){

//登陆成功

//写入用户信息

user.setName(name);

user.setAddress(c.getString(3));

user.setTelephone(c.getString(4));

Toast.makeText(getApplicationContext(),   "登陆成功", Toast.LENGTH_SHORT).show();

Intent   intent=new Intent(getApplicationContext(), UserActivity.class);

startActivity(intent);

finish();

return;

}else{

//Toast.makeText(getApplicationContext(),   "登陆失败", Toast.LENGTH_SHORT).show();

}

}

}

Toast.makeText(getApplicationContext(),   "登陆失败,用户名或密码错误", Toast.LENGTH_SHORT).show();

}

//Toast.makeText(getApplicationContext(),   "登陆失败", Toast.LENGTH_SHORT).show();

}

2 . 用户模块

用户模块的设计思路主要是为了方便用户在线订水而设计,该模块又划分为6个子模块,分别是在线订水、订单查询、信息管理、在线支付、服务评价、查询评论,下面对这几个模块具体介绍:

(1)     在线订水

在线订水主要是为了满足在校大学生可以足不出户就可以完成订水的需求,可以大大方便学生的生活。

UI设计:

逻辑设计:

将订单存放到数据库之中:


ublic class ApplyWaterActivity   extends AbActivity {

private   EditText userName = null;

private   EditText waterNum = null;

private   EditText userAddress=null;

private   EditText userTel=null;

private   EditText userTime=null;

private   Button btnYD=null;

private   MyDBHelper helper=null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setAbContentView(R.layout.applywater);

//application =   (MyApplication)abApplication;

this.setTitleText("当前用户:"+User.getInstance().getName());

this.setLogo(R.drawable.button_selector_back);

this.setTitleLayoutBackground(R.drawable.top_bg);

this.setTitleTextMargin(10,   0, 0, 0);

this.setLogoLine(R.drawable.line);

helper=new   MyDBHelper(getApplicationContext());

userName=(EditText)findViewById(R.id.userNameapply);

userTel=(EditText)findViewById(R.id.userTelapply);

userAddress=(EditText)findViewById(R.id.userAddressapply);

waterNum=(EditText)findViewById(R.id.userNumapply);

userTime=(EditText)findViewById(R.id.userNumapplytime);

btnYD=(Button)findViewById(R.id.Btnapply);

btnYD.setOnClickListener(new   View.OnClickListener() {

@Override

public   void onClick(View arg0) {

//   TODO Auto-generated method stub

ContentValues   cv=new ContentValues();

cv.put("name",   userName.getText().toString());

cv.put("tel",   userTel.getText().toString());

cv.put("address",   userAddress.getText().toString());

cv.put("num",   waterNum.getText().toString());

cv.put("thetime",   userTime.getText().toString());

helper.insertDingdan(cv);

Toast.makeText(getApplicationContext(),   "预定成功,请支付", Toast.LENGTH_SHORT).show();

finish();

}

});

}

}

(2)     订单查询

订单查询模块,主要是满足用户在线查询自己订单情况,及时掌握预定的桶装水的位置及送达的时间

UI设计:

订单查询模块在UI设计上采用白班,在逻辑代码中动态加载,因为订单可以有,也可以没有,故直接介绍逻辑设计

逻辑设计:

订单查询这一项是将数据从数据库中取出来,展示到界面中,供用户查询,采用了List链表的数据结构,所以看到的结果是一个列表,主要实现代码如下:


//查看所有订单

public class LookDDActivity   extends AbActivity{

private   MyDBHelper helper=null;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setAbContentView(R.layout.main);

this.setTitleText("当前用户:"+User.getInstance().getName());

this.setLogo(R.drawable.button_selector_back);

this.setTitleLayoutBackground(R.drawable.top_bg);

this.setTitleTextMargin(10,   0, 0, 0);

this.setLogoLine(R.drawable.line);

helper=new   MyDBHelper(getApplicationContext());

//获取ListView对象

ListView mListView =   (ListView)this.findViewById(R.id.mListView);

//ListView数据

List<Map<String,   Object>> list = new ArrayList<Map<String, Object>>();

Map<String,   Object> map = new HashMap<String, Object>();

Cursor c =   helper.queryDingdan();

if(c.moveToFirst()){

for(int   i=0;i<c.getCount();++i){

c.move(i);

int   id=c.getInt(0);

String   name=c.getString(1);

String   tel=c.getString(2);

String   address=c.getString(3);

int   num=c.getInt(4);

String   time=c.getString(5);

map   = new HashMap<String, Object>();

map.put("itemsIcon",R.drawable.tong);

map.put("itemsTitle",   "订单"+id);

map.put("itemsText",   "订单者:"+name+"\n电话:"+tel+"\n地址:"+address+"\n数量:"+num+"桶"+"\n送水时间:"+time);

list.add(map);

}

}

//使用自定义的Adapter

MyListViewAdapter   myListViewAdapter = new MyListViewAdapter(this, list,R.layout.list_items,

new   String[] { "itemsIcon",   "itemsTitle","itemsText" }, new int[] { R.id.itemsIcon,

R.id.itemsTitle,R.id.itemsText   });

mListView.setAdapter(myListViewAdapter);

}

}

(3)     信息管理

信息管理模块主要是满足用户修改自己的信息,包括宿舍号,电话号码,密码等等,

UI设计:

信息修改由于和注册界面有很大的相似度,故直接沿用注册界面的UI代码,做到了代码复用,大大提高了开发效率。

逻辑设计:

在信息管理模块中,将用户信息从数据库中取出,展示到界面中,然后用户修改之,点击确认修改,即可将更新的数据放入数据库,主要代码如下:


public class ModifyInfoActivity   extends AbActivity{

private   EditText userName = null;

private   EditText userPwd = null;

private   EditText userAddress=null;

private   EditText userTel=null;

private   Button btnRegister=null;

private   MyDBHelper helper=null;

private   TextView textView=null;

private   User user;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setAbContentView(R.layout.register);

this.setTitleText("当前用户:"+User.getInstance().getName());

this.setLogo(R.drawable.button_selector_back);

this.setTitleLayoutBackground(R.drawable.top_bg);

this.setTitleTextMargin(10,   0, 0, 0);

this.setLogoLine(R.drawable.line);

helper=new MyDBHelper(this);

user=User.getInstance();

userName=(EditText)findViewById(R.id.userNameRegister);

userPwd=(EditText)findViewById(R.id.userPwdRegister);

userAddress=(EditText)findViewById(R.id.userAddressRegister);

userTel=(EditText)findViewById(R.id.userTelRegister);

btnRegister=(Button)findViewById(R.id.BtnRegister);

textView=(TextView)findViewById(R.id.registerTitle);

textView.setText("用户信息修改");

btnRegister.setText("确认修改");

userName.setText(user.getName());

userPwd.setText(user.getPassword());

userAddress.setText(user.getAddress());

userTel.setText(user.getTelephone());

//

btnRegister.setOnClickListener(new   View.OnClickListener() {

@Override

public   void onClick(View arg0) {

//   TODO Auto-generated method stub

ContentValues   cv=new ContentValues();

cv.put("name",   userName.getText().toString());

cv.put("pwd",   userPwd.getText().toString());

cv.put("address",   userAddress.getText().toString());

cv.put("telephone",   userTel.getText().toString());

helper.updateUser(cv);

Toast.makeText(getApplicationContext(),   "信息修改成功", Toast.LENGTH_SHORT).show();

finish();

}

});

}

}

(7)     在线支付

在线支付模块用于支付订单信息,可以实现交易无纸化,该模块预期完成微信和支付宝两种主流在线支付模式的接口对接,这里调用的是支付宝盒微信的接口,直接利用现有接口,大大减轻了开发难度,下面是效果:

(8)     服务评价

服务评价模块主要是为了方便用户对饮水公司的服务情况进行反馈,一是方便广大用户满足自己发声的需求,另一方面也可以方便饮水公司改进自己的服务质量,在这一章中,和之前的设计思路相似,这里只展示部分逻辑代码:


ListView mListView =   (ListView)this.findViewById(R.id.mListView);

//ListView数据

List<Map<String,   Object>> list = new ArrayList<Map<String, Object>>();

Map<String,   Object> map = new HashMap<String, Object>();

Cursor c =   helper.queryComment();

if(c.moveToFirst()){

for(int   i=0;i<c.getCount();++i){

c.move(i);

String   name=c.getString(1);

String   content=c.getString(2);

map   = new HashMap<String, Object>();

map.put("itemsIcon",R.drawable.image_bg);

map.put("itemsTitle",   "评论人"+name);

map.put("itemsText",   "内容:"+content);

list.add(map);

}

}

//使用自定义的Adapter

MyListViewAdapter   myListViewAdapter = new MyListViewAdapter(this, list,R.layout.list_items,

new   String[] { "itemsIcon",   "itemsTitle","itemsText" }, new int[] { R.id.itemsIcon,

R.id.itemsTitle,R.id.itemsText   });

mListView.setAdapter(myListViewAdapter);

(9)     查询评论

查询评论这一模块主要是为了方便用户查看其他用户对饮水公司的评价,以实现消费前货比三家的消费习惯,帮助自己决策是否购买该饮水公司的饮用水。在这一个模块里面和订单查询的设计思路基本一致,不在做过多介绍

2. 管理员模块

管理员模块实际上提供给饮水公司使用的模块,通过这个模块,饮水公司可以在线管理订单,及时发水给学生。方便快捷,还可以对库存进行管理。特别方便实用。该模块主要分为管理订单,查看评论,库存管理三个模块,由于管理员模块和用户模块有很多相似的地方,故这里就只做简要介绍,不再展示代码了。

(4)     管理订单

管理订单模块主要是为了方便饮水公司在线管理自己的订单,通过管理订单可以做到及时发货,以满足学生们的饮水需求

(5)     查看评论

查看评论模块主要是为了方便饮水公司搜集用户满意度,以给自己做出服务方式转变的决策提供依据,不断提高服务水平。

(6)     库存管理

库存管理模块可以方便饮水公司对自己的库存量进行管理,以满足科学管理,平衡供求关系的目的。

系统测试

软件测试的目的主要是测试软件的界面是否与设计的效果吻合、运行效果是否良好、功能是否完善、性能是否稳定。软件的测试内容主要包括功能测试、兼容性测试两项。

测试环境如表所示。

测试环境表


软件环境(相关软件、操作系统等)


操作平台:Windows 7


JDK:1.7


Android   SDK:2.3


编程软件:Eclipse KEPLER


硬件环境(网络、设备等)


手机:HTC g14


内存:512M


系统:Android 2.3.2


驱动:HTC g14手机驱动

硬件:带有USB2.0接口的台式一台、装有Android4.0系统的魅族M9手机一部、USB线一根,手机USB接口与电脑的USB接口通过USB保持线相连并处于同步状态。

软件:Eclipse KEPLER、Android ADT 17集成开发环境、Android 2.3 SDK、HTC g14手机驱动。

在电脑系统调试状态,可以使电脑与HTC g14手机连接后保持同步。通过Eclipse中DDMS的Device可以对软件的运行画面截屏,通过集成环境的LogCat可以对软件的运行情况进行分析。

功能测试

功能测试也叫黑盒测试或数据驱动测试,只需考虑各个功能,不需要考虑整个软件程序的内部结构及代码,一般从软件的界面、架构出发,编写测试用例进行操作,在预期结果和实际结果之间进行评测,进而提出更改策略,使产品达到软件说明书定义的要求。

软件的功能测试需要测试软件的功能是否完整、各项功能是否与预期相符等。功能测试如表所示


测试目标


通过测试达到以下目标:

测试软件是否达到设计的要求,包括各功能模块是否已实现,业务流程是否正确。

系统运行是否稳定,性能是否在可接受范围。


测试范围


在需求中明确给出的功能模块。


技术


通过设计测试用例,采用黑盒测试执行各个用例来进行测试。


开始标准


用户开启高校饮用水配送管理系统主界面,正常进行使用


完成标准


功能流程及操作使用达到预期设计标准。


测试重点和优先级


测试重点:软件兼容性和数据库数据。

优先级:软件兼容性>数据库数据>其他功能


需考虑的特殊事项


运行时是否出现异常退出情况

主要对软件的运行环境和功能进行了测试,通过测试,证明软件运行良好,与预期基本相符。

以上是论文截取部分比较关键内容:

勤拂拭软件出品,必属精品

软件开发,毕业设计,程序作业,请访问勤拂拭毕业设计:

勤拂拭软件

我的qq(1215714557 加好友请注明:勤拂拭)

qq群(439261058 加群请注明:勤拂拭)

时间: 2024-11-03 22:39:43

基于Android的高校饮水宝app的相关文章

基于Android的旅游自助系统APP设计与实现

系统需求: 为了更够实现旅游信息信息化,更好推广旅游经济的发展,要求实现以下功能: 1.  旅游局能维护景点的信息:位置.游览项目及价格.景点介绍.开发时间: 2.  旅游公司维护本公司开设的旅游线路信息:景点名称.餐饮.住宿.交通.游览时间.价格.联系方式: 3.  游客可以查询景点信息及旅游线路信息,且游客可以自定义筛选查找相应的旅游线路信息: 4.  游客可以在线预约旅游线路服务: 5.  旅游公司能够查询游客预约服务信息: 版本控制系统:SVN 前端:Bootstrap框架.Html5+

一个基于Android系统的新闻客户端(一)

一.整体概述 在服务器端,通过对凤凰网的抓取存入数据库,客户端通过向服务器发送请求得到新闻. 服务端用WCF,宿主为window服务,客户端为Java写的安卓程序. 二.客户端 我在eclipse里新建了个Android项目,命名为MyNewClient,eclipse自动生成二个xml布局文件,如图: 其中,fragment_main.xml是新版的布局文件,暂时不会用,把它删掉. 新建xml文件,命名为activity_foot.xml,在这里我们要做app的底部,先上代码: <?xml v

Android开发自学笔记(基于Android Studio1.3.1)—1.环境搭建

一.引言    本套学习笔记的开发环境是Windows 10 专业版和Android Studio 的最新版1.3.1. Android Studio 是一个Android开发环境,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试.    笔者没有怎么使用过Eclipse做Android学习,但是基于Android Studio类似于VS的项目架构,还是偏爱Android Studio这个IDE,没

基于Android 4.4 开发的多窗体系统 开放源代码

Hi, 这是我基于Android 4.4开发的多窗体系统,还有非常多不足,还请多多不吝赐教啊,代码已经所有开源. 视频地址 源代码地址 Done: 1. APP以窗体化显示 在 PhoneWindowManager::layoutWindowLw() 中通过packageName过滤,使指定的APP以非全屏尺寸显示,由于一个APP一般是以一个task为单位,显示多个activity,因此採用packageName过滤的方法. 2. 多个APP同一时候处于 onResume 状态 改动AMS中通知

基于Android的闹钟的软件

一.本课题要求:设计一个基于Android的闹钟的软件. 实现的功能有:能通过界面设置闹钟的启动条件建立后台服务进程,当满足触发条件时,闹钟响应相应事件. 二.需求分析 该课题实现在手机操作系统Android闹钟提醒功能,携带方便,使用起来灵活.快捷.省心,是一款实用的手机软件.“手机闹钟”可以在后台运行,且能和普通闹钟一样设置多个位置闹铃,有良好的人机交互界面,可对其编辑.启用或禁用,关键在于可以自定义设置取消闹钟的操作. (1)系统体系结构包括:添加闹铃.设置时间.重复等,闹铃提醒方式,返回

基于Android MPAndroidChart实现腾讯QQ群数据统计报表核心功能

 基于Android MPAndroidChart实现腾讯QQ群数据统计报表核心功能 腾讯QQ移动客户端(新版)的QQ群有一项功能比较有趣,是关于QQ群的.QQ群新增一项功能开放给具有管理权限的群成员:管理群 -> 群数据 中,会看到QQ群的一些基础数据统计报表,如人数.发言条数的统计报表,如图: 我之前写了一篇文章是关于Android平台上的一个统计报表的开源框架MPAndroidChart,文章介绍了如何在自己的项目中使用MPAndroidChart制作统计报表,同时给出了基本折线图的一

【转】Android学习系列(1)--为App签名(为apk签名)

原文网址:http://www.cnblogs.com/qianxudetianxia/archive/2011/04/09/2010468.html Android学习系列(1)--为App签名(为apk签名) 写博客是一种快乐,前提是你有所写,与人分享,是另一种快乐,前提是你有舞台展示,博客园就是这样的舞台.这篇文章是android开发人员的必备知识,是我特别为大家整理和总结的,不求完美,但是有用. 1.签名的意义 为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Pack

导入开源库到基于Android Studio构建的项目中

前两天,谷歌发布了Android Studio 1.0的正式版,也有更多的人开始迁移到Android Studio进行开发.然而,网上很多的开源库,控件等还是以前的基于Eclipse进行开发,很多人不知道怎么导入到自己的基于Android Studio项目中来,微博上也有人私信我,让我来写写,正好今天回来的比较早,就写写吧.主要介绍一下常见的一些导包的场景. 前言 --project //项目目录 | build.gradle //项目的gradle配置文件 | settings.gradle

如何获取应用宝APP ID

二百二维码支持绑定应用宝ID后,android 扫码下载后,微信直接下载APP,不打开应用宝页面,非常方便APP进行推广 那如何获取应用宝APP ID呢, 请参考下面的教程   一, 打开http://open.qq.com , 用自己的账号登录    二, 登录后,点击顶部的 "应用接入" -> “应用管理”  三, 进入应用管理页面后,找到自己上传的APP,点击查看详细    四,在应用详细下面的运营服务里有 “微下载”,点击进去,在顶部有个APP ID,将APP ID填写到