`
X5Cloud
  • 浏览: 7336 次
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

云平台编程与开发(三):创建基于X5Cloud云平台的Hello World程序(运行在Android的手机、平板上)

阅读更多
云平台编程与开发(三):创建基于X5Cloud云平台的Hello World程序(运行在Android的手机、平板上)
http://blog.sina.com.cn/s/blog_85e4309c0100u7mb.html

如何创建基于X5Cloud的Hello World程序(运行在Android的手机、平板上)
基于X5 SDK开发一个简单的Hello World程序,详细步骤如下:(1)下载X5 SDK包,并到X5Cloud首页(www.x5cloud.com)注册一个新用户账号。注册成功后,登录进入主控界面之个人资料,获得该用户账号对应的唯一用户编号(16位数字)。(2)准备Android开发环境,本测试基于【WindowsXp+MyEclipse8.5+Android SDK2.2+X5 SDK包】另:ADT(Android开发工具包)需要到MyEclipse8.5帮助里的软件工作环境中心去更新下载;Android的SDK2.2里的库文件以及开发工具包最好更新下载完整。
----------X5 SDK包 (官方下载地址)
----------MyEclipse8.5 (官方下载地址)
----------Android SDK2.2 (官方下载地址)(4)在本地打开eclipse,导入Hello World程序源代码(点此下载)。另:附上一个基于Android上的 x5应用小项目GoodsManagerSys程序源码下载 (点此下载)(5)参见如下Hello World源码部分截选,要运行Hello World程序,需将源代码中涉及到的用户唯一编号更改为自己所注册账号对应的用户编号;同时要注意将服务器域名确认设置为“service.x5cloud.com”(参见如下红色粗体代码部分)。【工程Hello world的结构图】 DataBase类:
package com.infobase; import java.util.ArrayList; import java.util.List; import x5.database.X5Persist; import x5.exception.X5Exception; public class DataBase { private static String userid="8888888888888888"; //userid唯一编号 private static int dbtype=1; //dbtype private static String dbname="android"; //dbname private static String serverip="service.x5cloud.com"; //serverip服务器域名 public boolean createDB(){ //实例化,把标志身份的userid传过去 X5Persist x5=new X5Persist(userid,dbtype,dbname,serverip); int count=-1; try { //调用方法,返回int值大于或等于零为创库成功 count=x5.createDB(); } catch (X5Exception e) { e.printStackTrace(); System.out.println(e.getMessage()); return false; }finally{ if(count>=0){ System.out.println("创建数据库成功"); return true; } } return true; } public void createTable(){ //创建sqlserver表的sql语句 String sql="create table mytable" + "(user_id int not null," + "user_name varchar(20) not null," + "user_psw varchar(20) not null" + ")"; //实例化,把标志身份的userid传过去 X5Persist x5=new X5Persist(userid,dbtype,dbname,serverip); int count=-1; try { //调用方法,返回int值大于或等于零为创建表成功 count = x5.persist(sql); } catch (X5Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } if(count>=0){ System.out.println("成功!受影响行数为:"+count); } } public void insertData(){ String str1="insert into mytable(user_name,user_psw) values('android','admin')"; String str2="insert into mytable(user_name,user_psw) values('infobase','admin')"; List sql=new ArrayList(); sql.add(str1); sql.add(str2); int istransaction=1; //实例化,把标志身份的userid传过去 X5Persist x5=new X5Persist(userid,dbtype,dbname,serverip); boolean flag=false; try { //调用方法,返回boolean值标识是否执行成功 flag = x5.x5job(sql,istransaction); } catch (X5Exception e) { System.out.println(e.getMessage()); e.printStackTrace(); } if(flag){ System.out.println("成功!"); } } }
Initialize类:
package com.infobase; public class Initialize { public boolean Init(){ DataBase db=new DataBase(); if(db.createDB()){ // 数据库创建成功; db.insertData(); db.createTable(); return true; }else{ return false; } // 数据库已存在,使用存在的数据库 } }
SelectTable类:
package com.infobase; import x5.database.X5DBResult; import x5.database.X5Persist; import x5.exception.X5Exception; public class SelectTable { public static X5DBResult doGetResult() throws X5Exception { String sql="select * from mytable where user_id<?"; Object []objs=new Object[]{1000}; String userid="8888888888888888"; //userid int dbtype=1; //dbtype String dbname="android"; //dbname String serverip="service.x5cloud.com"; //serverip //实例化,把标志身份的userid传过去 X5Persist x5=new X5Persist(userid,dbtype,dbname,serverip); //带参数的查询,返回结果集 X5DBResult rs=x5.select(sql,objs); return rs; } }
User类:
package com.infobase; public class User{ private String username; private String password; public String getUsername(){ return username; } public void setUsername(String username){ this.username=username; } public String getPassword(){ return password; } public void setPassword(String password){ this.password=password; } }
Cache类:
package com.infobase; public class Cache{ private User User; private Cache(){ } private static class CacheHolder{ private static final Cache INSTANCE=new Cache(); } public static Cache getInstance(){ return CacheHolder.INSTANCE; } public User getUser(){ return User; } public void setUser(User User){ this.User=User; } }
LoginActivity类:
package com.infobase; import x5.database.X5DBResult; import x5.exception.X5Exception; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class LoginActivity extends Activity { //用户名及密码验证 private void checkedData() throws X5Exception{ String username=((EditText)findViewById(R.id.username)).getText().toString(); String password=((EditText)findViewById(R.id.password)).getText().toString(); User user=new User(); user.setUsername(username); user.setPassword(password); //判定登录与否的result boolean result=false; SelectTable st=new SelectTable(); //X5.database.X5DBResult类 //该类为查询数据库得到的结果集 X5DBResult rs=st.doGetResult(); //hasNext()方法返回Boolean值,判断是否还有下一行记录 while(rs.hasNext()){ if(rs.getObject(2).toString().equals(user.getUsername()) &rs.getObject(3).toString().equals(user.getPassword().toString())){ result=true; } } if(result){ Cache.getInstance().setUser(user); //输入正确提示框 Toast.makeText(getApplicationContext(),"登录成功",1000).show(); Intent intent=new Intent(); //正确后跳转到WelcomeActivity intent.setClass(LoginActivity.this,WelcomeActivity.class); startActivity(intent); }else{ //输入不正确提示框 Toast.makeText(LoginActivity.this,"密码或用户名不匹配,请重新输入!",1000).show(); } } //申明login_button_listener public Button.OnClickListener login_button_listener=new Button.OnClickListener(){ @Override public void onClick(View arg0) { // TODO Auto-generated method stub try { checkedData(); } catch (X5Exception e) { // TODO Auto-generated catch block e.printStackTrace(); Toast.makeText(getApplicationContext(),"数据库连接不上",1000).show(); } } }; //监听并响应按钮的‘单击’事件 public void find_and_modify_listener(){ Button login_button=(Button)findViewById(R.id.login); login_button.setOnClickListener(login_button_listener); } public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //主界面显示后数据源的初始化 Initialize initialize=new Initialize(); if(initialize.Init()){ Toast.makeText(getApplicationContext(),"数据初始化完成",1000).show(); }else{ Toast.makeText(getApplicationContext(),"数据源已存在或者数据库连接不上",1000).show(); } find_and_modify_listener(); } }
WelcomeActivity类:
package com.infobase; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class WelcomeActivity extends Activity{ public void onCreate(Bundle icesky){ super.onCreate(icesky); setContentView(R.layout.welcome); TextView tv=(TextView)findViewById(R.id.tv); tv.setText("Welcome "+Cache.getInstance().getUser().getUsername()+"!"); } }
main.xml文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:text="username" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/username" android:layout_height="wrap_content" android:layout_width="match_parent" /> <TextView android:text="password" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <EditText android:id="@+id/password" android:layout_height="wrap_content" android:layout_width="match_parent" android:inputType="textPassword" /> <Button android:text="Login" android:id="@+id/login" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
主界面显示如下:welcome.xml类:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:text="Welcome!" android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>
欢迎界面显示如下:AndroidManifest.xml文件:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.infobase" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="8" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".LoginActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".WelcomeActivity"></activity> </application> <!-- 访问internet权限 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 在SDCard中创建与删除文件权限 --> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <!-- 往SDCard写入数据权限 --> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <!-- 单元测试 --> <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.changcheng.web.client" android:label="Tests for My App" /> </manifest>
分享到:
评论

相关推荐

    [计算机][Java]X5Cloud云平台改变了什么?快速开发和部署Android手机平板和Java Web云端应用.doc

    X5Cloud云平台是一款创新性的云计算解决方案,专为中小企业和开发者设计,旨在简化应用程序的开发、部署和管理过程。这个平台显著改变了传统云计算环境中的几个关键方面,使其更易访问,更具成本效益,并且提高了跨...

    基于android云应用开发

    在当前的数字化时代,基于Android的云应用开发已经成为开发者们关注的焦点,特别是在移动设备、平板电脑和Java Web三者之间实现数据同步和共享时。本文将深入探讨如何利用云技术构建Android应用,并以X5Cloud云平台...

    cloud-helloworld第一示例程序

    本示例程序"cloud-helloworld"是一个入门级的项目,旨在帮助初学者理解和实践基于Java的云应用程序开发,特别是结合了Spring Cloud和Spring Boot框架。这两个框架在企业级微服务架构中广泛使用,为开发者提供了强大...

    一种基于Vue+SpringCloud的云平台.pdf

    一种基于Vue+SpringCloud的云平台.pdf一种基于Vue+SpringCloud的云平台.pdf一种基于Vue+SpringCloud的云平台.pdf一种基于Vue+SpringCloud的云平台.pdf一种基于Vue+SpringCloud的云平台.pdf一种基于Vue+SpringCloud的...

    基于CloudFoundry的PaaS云平台的设计与实现

    综上所述,基于CloudFoundry的PaaS云平台的设计与实现,不仅需要深入理解和分析CloudFoundry的技术架构和组件,还需要在实际构建过程中,根据自身的需求进行定制开发。CloudFoundry通过其开放性和对多种语言框架的...

    Android搭建、HelloWorld.

    ### Android开发环境搭建与HelloWorld程序详解 #### 一、Android环境搭建 ##### 1. 所需开发环境 为了能够进行Android应用开发,我们需要准备以下几项开发工具: - **JDK (Java Development Kit)**:Java开发...

    Zigbee+Android访问新大陆云平台.rar

    本文将详细讲解如何使用Zigbee技术与Android应用程序相结合,通过新大陆云平台实现远程设备控制和数据交换。Zigbee是一种低功耗、低成本、短距离无线通信技术,广泛应用于智能家居、物联网(IoT)等领域。新大陆云平台...

    基于Spring Cloud框架的快速云平台开发系统.zip

    基于Spring Cloud框架的快速云平台开发系统 项目简介 快速云平台开发系统(Fast Cloud Platform, FCP)是一个基于Spring Cloud框架的快速开发平台。FCP提供了业务开发中所需的基础功能,如用户管理、机构管理、...

    cloud-init制作云平台镜像

    【cloud-init制作云平台镜像】是云环境部署中常用的一种技术,特别是在OpenStack等云平台上。cloud-init是一个专门设计用于虚拟机初始化的工具,它能够从数据源中获取元数据和用户数据,对新创建的虚拟机进行自动化...

    论文研究-基于Docker的容器云平台设计与实现 .pdf

    首先,云计算技术的发展与云平台的商业化促使企业将复杂IT应用迁移到云端。云计算模型通常分为三个层次:基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)。IaaS层提供基础的IT资源,例如虚拟机、...

    Spring 与 Cloud Foundry:在云中珠联璧合

    标题 "Spring 与 Cloud Foundry:在云中珠联璧合" 暗示了本文将探讨Spring框架如何与Cloud Foundry云平台相结合,发挥出强大的云计算能力。这两个技术的结合,为企业提供了高效的开发和部署环境,实现了快速迭代和可...

    教你写一个云上Hello world小程序

    2. 初始化开发环境:在本地计算机上安装必要的开发工具和SDK,配置好与云开发平台的连接。 3. 编写小程序代码:创建小程序项目,编写前端代码和后端逻辑代码。前端代码通常使用HTML、CSS、JavaScript,后端则可能...

    panabit cloud云平台安装包

    panabit cloud云平台安装包

    庄晓丹:基于Clojure构建的移动云平台——我的Clojure实践思考

    - Avos团队基于快速开发的初衷创建了AVOSCloud平台。这一初衷说明了快速原型开发、迭代和响应市场需求的重要性。 - 讲座中庄晓丹分享了Avos团队在Clojure上的实践和经验,这对于国内的Clojure传播有着重要贡献,有...

    hello world!

    在大多数编程语言中,"Hello World!" 是编写的第一段代码,用于演示最基本的语法结构。这个简单的程序通常会打印出 "Hello World!" 这个字符串,向初学者展示如何在控制台上输出文本。 学习程序是一个持续的过程,...

    Spring Roo 简介,第 4 部分: 用 Spring Roo 和 Cloud Foundry 在云中快速开发应用程序

    **Spring Roo 简介,第 4 部分: 用 Spring Roo 和 Cloud Foundry 在云中快速开发应用程序** 在本篇文章中,我们将深入探讨 Spring Roo 的使用,以及如何结合 Cloud Foundry 进行云端应用开发。Spring Roo 是一个...

    [物联网竞赛]新大陆云平台官方竞赛SDK-Android Studio

    本资源是全国职业院校技能大赛以及各省职业技能大赛、以及新大陆云平台开发者的SDK,便于控制新大陆云平台传感器以及执行器。

    基于Android平台的记事本App的开发与实现.pdf

    "基于Android平台的记事本App的开发与实现" 本文介绍了基于Android平台的记事本App的开发与实现过程,该App基于MVC模式,使用fragment、sqlite等技术,实现了信息的富文本编辑与查询、用户注册与登录、信息上传至...

    巴法云平台微信小程序前端,完整直接使用

    这个标题暗示了我们讨论的是一个基于巴法云(BaaF Cloud)平台的微信小程序的前端开发资源,该资源是完整的,可以直接用于项目实施。这通常意味着包含了所有必要的代码、配置文件以及可能的文档,使得开发者能够快速...

Global site tag (gtag.js) - Google Analytics