当前位置:文档之家› AGPS实现方式整理与比较

AGPS实现方式整理与比较

AGPS实现方式整理与比较
AGPS实现方式整理与比较

目录

1.AGPS 概念 (2)

2.U-Blox平台AGPS技术 (3)

2.1u-blox在线AssistNow (3)

2.2u-blox离线AssistNow系统 (4)

3.MTK 平台A-GPS技术 (7)

3.1EPO工作方式 (7)

3.2EASY工作方式 (10)

4.SIRF 平台A-GPS技术 (12)

4.1SGEE工作方式 (12)

4.2CGEE工作方式 (12)

1. AGPS 概念

AGPS是由外界提供接收机信号捕获与定位所需的信息数据的方式和技术,它能加快接收机信号捕获和完成首次定位的速度,又能提高信号捕获与跟踪灵敏度。在AGPS提供卫星星历、时间和接收机位置辅助信息的条件下,接收机的所有启动形式通常都变成了热启动,于是TTFF一般可在5s内完成,因为由AGPS支持的接收机不但可以极大地减小信号捕获中的搜索范围,而且又不必为了从卫星信号中实时地获取星历参数而连续运行,所以它的功耗大大降低。

AGPS一直以来主要是通过各种数据通信网络将GPS卫星星历等辅助信息数据提供给接收机的。一方面,用户移动终端(MS)需要配置AGPS接收机模块,以完成对GPS卫星信号的测量;另一方面,通信网络端需要增设AGPS定位服务器等设备,以收集和播发辅助信息,响应移动终端的请求。

AGPS的运行机制

AGPS定位计算可分为以下两种方式。

1. MS-Assisted:移动终端将伪距等GPS测量值传送给AGPS定位服务器,网络侧计算移动终端的位置,再将定位结果送给移动终端或者其他相关的机构、中心。在这种方式下,接收机适合单次运行模式,即它在实现首次定位后就关掉GPS。

优点:降低终端的运算负荷;能进行较复杂运算以获得更精确的位置;

缺点:定位过程中一旦网络终端,将失去定位结果。

2. MS-Based:移动终端进行GPS测量,并且自己负责定位计算,而卫星轨道等辅助信息则来自网络,适合连续定位模式,但对终端系统的运算资源要求较高。

根据获取辅助信息的方式不同,AGPS又可分为以下两种。

1. Online AGPS:

设备启动时能够实时通过GSM、GPRS、CDMA或UMTS等方式取得辅助信息,每次定位需下载1~3K数据。

采用在线AGPS,不同的方法会影响其定位效率。第一个影响的因素为连网速度,这和通信运营商的服务质量及用户所在位置息息相关,是较不可控的因素。第二个因素则与下载的卫星数据内容有关,当所获得的有用资料愈多,定位的速度也就愈快。例如若能取得GPS 时间(GPS Time),则可大幅缩短定位时间;这是因为卫星的移动很快(每秒移动800米),GPS时间有助于掌握卫星的确切位置。GPS时间又可分为粗略GPS时间(Coarse GPS time)和精确GPS时间(Precise GPS time),前者的定位时间要约30秒钟,后者只需数秒钟即可。

2. Offline AGPS:

无须启动时与服务器建立连接,用户可以在方便的时候通过网络或其他方式下载今后一段时间的修正信息,存于本地存储器上,有效期最长可达14天,GPS接收机在启动的时候根据该数据可以计算出所需的星历数据,快速启动定位。1天星历信息约10K,14天的约90K。

AGPS接收星历信息等,用来减少TTFF时间。

2. U-Blox平台AGPS技术

U-Blox的AssistNow A-GPS服务提供了AssistNow Online(在线AssistNow)和AssistNow OffLine(离线AssistNow)两种易用的AGPS方案。实际上这两种方案分别就是MS-Assisted 和MS-Based两种定位计算方式的实现。

2.1u-blox在线AssistNow

图1 u-blox在线AssistNow系统组成图

U-blox在线AssitNow系统组成如图1所示。从图中可以看出,该系统主要包含全球参考网络服务器、U-blox的数据库服务器、客户的代理服务器(也即客户端PC)、U-blox GPS模块或者内嵌U-blox GPS模块的移动终端四部分组成。其具体工作方式可分为如下两种:

1.若终端为内嵌U-blox GPS模块的移动终端,且终端支持GSM、GPRS、CDMA、UMTS

中的一种,则终端可以直接通过上述几种方式中的一种与U-blox的服务器连接,从而获取有效的辅助定位数据;

2.终端也可以基于客户端PC与U-blox服务器连接,从服务器端下载星历、年历、粗略位

置等相关信息,从而辅助GPS进行定位,具体如下:

A.打开U-Blox的工具U-center,点击receiver-action-assistnow online菜单,输入相应的用户名和密码,点击OK,详见图2;

B.如果用户名和密码校验成功,则开始下载星历数据,

C.此时GPS接收机会重启,下载的数据将会立即传递给GPS接收机中,同时在U-CENT 工具中可以看到定位时间。

备注:用户名和密码可以通过往U-blox指定的邮箱发送邮件申请获取。;

图2

3.这些数据并不需要存储在GPS接收机或者系统的内存中,而且每次启动连接时,数据都

会更新;

4.在线GPS以当前星历来进行定位,因此可以获得较佳的准确性;但星历的有效性比较短,

需要随时更新,且易受移动系统的连网质量、连网时间及所需要获得数据大小影响;2.2u-blox离线AssistNow系统

图3 u-blox离线AssistNow系统组成图

u-blox离线AssistNow系统组成如图3所示。从图中可以看出该系统主要包含全球参考网络服务器、U-blox的数据库服务器、OEM数据中心(也即客户端PC)、U-blox GPS模块或者内嵌U-blox GPS模块的移动终端四部分组成,其工作方式详解如下:

工作方式1:

1.从U-blox数据库服务器下载你所需的辅助数据包,保存到OEM数据中心,也即本地电

脑上,其URL地址为:URL is https://www.doczj.com/doc/e811366900.html,,数据包分为1天、2天、3天、5天、7天、14天等有效天数不等的数据包(详见图4),选择你所需要即可;

图4 U-blox服务器上的不同数据包

2.如果数据包下载成功,则打开U-Cent工具,点击Tool-Assistnow offline,选择之前下载

的数据包,点击OK,详见图5,将相关数据写到GPS接收机或者系统的内存保存即可;

图5

工作方式2:

方式2的情况下,客户不需要事先将GPS定位辅助信息从Ublox服务器下载备份到本地,而只需打开U-cent工具,进入Tool-Assistnow offline,直接选择所需要从服务器上下载哪种天数的数据,然后点击OK,此时相关辅助信息会直接写入终端内存,详见图6;

图6

无论是在线式A-AGPS还是离线式A-GPS,U-blox公司生产的所有GPS接收机在出厂时就支持,相关程序已经硬掩模在芯片内部,不需要特别的程序来支持,同时U-blox 的离线式A-GPS的有效数据可以到达14天。

3. MTK 平台A-GPS技术

MTK平台提供了EPO(Extended Prediction Orbit)和EASY(Embedded Assist System)两种方式(以MTK3339为例),以下我们将分别介绍这两种工作方式。

3.1EPO工作方式

MTK 的EPO技术将提供7、14、31天不等的卫星轨道预测信息给客户,其系统框图如图7所示,从图中可以看出,MTK将从全球参考服务器获得卫星轨道相关预测信息经过相关的数据处理、检测后放到其制定的FTP服务器上,其客户可以通过账户和密码从服务器上获取所需的信息。

图7 MTK EPO技术系统框图

客户也可以定期从MTK 服务器上取得有效数据放在自己搭建的代理服务器上,用以提供给自己的客户使用,详见图8:

图8

客户可以通过两种方法从MTK FTP服务器上将辅助信息下载到GPS接收机中,两种方式其实大同小异,只不过是登陆服务器的方式不一样,一种是直接使用MTK的工具,输入相应的账号和密码,获取相应的有用信息后,导入GPS接收机的内存中,详见图9、图10;另一种方式称为Host EPO,是直接进入MTK FTP服务器中取得有效数据后,再使用MTK提供的工具,选择有效数据保存的相关路径(必须为MTK工具的安装目录下,估计PC软件是根据相对地址寻址的),这样在不需要将该数据导入GPS内存的情况下,即可利用保存在主机中的数据进行辅助定位,详见图11、12。

图9

图10

图11

图12

注意:实际测试验证时,发现定位时间有长有短,不是很稳定,好的时候1.1s就可以定位上,差的时候要57.4s才能定位上。

3.2EASY工作方式

MTK提供的另外一种AGPS工作方式,称为EASY (Embedded Assist System)技术。EASY技术所需的软件内嵌在MTK芯片中,默认是关闭的,需要的时候,可以通过PMTK 命令打开。GPS接收机启动时,特别是第一次启动时,会接收所能收到的卫星星历等相关信息(有效时间为3天),保存到内部存储空间,下次Warm start时,由于内部空间已经携带了相关的辅助定位信息,保证了能在很短的时间内实现定位,其工作情况及操作步骤详见图13和图14。

图13

图14

4. SIRF 平台A-GPS技术

SIRF平台也有两种AGPS,分别为SGEE(Server Generated Extended Ephemeris)和CGEE (Client Generated Extended Ephemeris),具体介绍如下:

4.1SGEE工作方式

SGEE功能有些类似MTK的EPO和U-BLOX的离线AGPS功能,关于SGEE,没有找到相关的资料,咨询了CSR中国代理赵平,他也说这个实现比较困难,且SIRF对于该功能收取的费用也比较高,如果客户确实想用的话,除了客户硬件设计上需要外接EEPROM外,还需要付费获取LICENSE来获取相应的辅助定位数据;

4.2CGEE工作方式

CGEE功能在原理上有些类似MTK平台的EASY技术,SIRF芯片默认是支持该功能的,由于SIRF内部没有多少内存空间,客户在设计时需要外接EEPROM,用以存储GPS 接收机启动时所搜索和接收的卫星星历数据,数据的有效时间为3天。

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解

Android学习笔记---SQLite介绍,以及使用Sqlite,进行数据库的创建,完成数据添删改查的理解 17_创建数据库与完成数据添删改查--------------------------------------1.SQLite介绍:最大特点是,无数据类型; 除了可以使用文件或SharedPreferences存储数据,还可以选择使用SQLite数据库存储数据。在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL、INTEGER n n 、REAL(浮点数字)、TEXT(字符串文本)和BLOB(二进制对象)数据类型,虽然它支持的类型 n n 只有五种,但实际上sqlite3也接受varchar(n)、char(n)、decimal(p,s) 等数据类型,只不 n n 过在运算或保存时会转成对应的五种数据类型。 SQLite最大的特点是你可以把各种类型的数n n 据保存到任何字段中,而不用关心字段声明的数据类型是什么。例如:可以在Integer类型的 n n 字段中存放字符串,或者在布尔型字段中存放浮点数,或者在字符型字段中存放日期型值。n n n 但有一种情况例外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数, 当向这种字段 n n 保存除整数以外的数据时,将会产生错误。 另外, SQLite 在解析CREATE TABLE 语句时, n n 会忽略 CREATE TABLE 语句中跟在字段名后面的数据类型信息,如下面语句会忽略 name字段 n n 的类型信息: CREATE TABLE person (personid integer primary key autoincrement, name varchar n n (20)) SQLite可以解析大部分标准SQL语句,如:查询语句:select * from 表名 where 条件子句 group by 分组字句 having ... order byn n n 排序子句如:select * from person n n n n select * from person order by id desc n n n n select name from person group by name having count(*)>1 ---------------------------------------------------------------------------2.a.分页SQL与mysql类似,下面SQL语句获取5条记录,跳过前面3条记录n n select * from Account limit 5 offset 3 或者 select * from Account limit 3,5 n b.select * from Account limit 3,5,指的是跳过前面的3条记录,然后获取5条记录n c.select * from Account limit 3,5是select * from Account limit 5 offset 3语句 n n 的简写版 -------------------------------------------------------------------------------n 3.常用操作: a.插入语句:insert into 表名(字段列表) values(值列表)。如: insert into person nn n n (name, age) values(‘传智’,3) b.更新语句:update 表名 set 字段名=值where 条件子句。如:update person set name=n n n n'credream ‘where id=10 c.删除语句:delete from 表名 where 条件子句。如:delete from person nwhere id=10 -------------------------------------------------------------------------------2.虽然无数据类型,但是建议加上,这样可以增加可读性,支持标准sql,oracle中的不行 ---------------------------------------------------3.获取添加记录后的自增长的ID值:select last_insert_rowid(); -----------------------------------------------------------4.在android中开发数据库应用: n a.创建数据库:以前在javaee时候,需要手工数据,但是android应用,需要运行在用户的 n n 手机上,所以,android应用,要有自动创建数据库功能,当第一次使用软件的时候 n n 就创建数据库----------------------------------------5.关于数据库自动创建的详细介绍: 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很 n n 多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建出 n n 应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数据 n n 表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手机 n n 上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工方 n n 式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为我 n n 们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库版 n n 本进行管理来实现前面提出的需求。n -----------------------------------------6.SQLite数据库添加,删除,改查操作 n A.创建数据库:SQLiteOpenHelper .getWritableDatabase ()或getReadableDatabase() n n 可以创建数据库7.创建完成以后可以使用SQLITE Expert软件打开生成的数据库n 可以看到除了生成的自己的需要的表之外,还生成了一张:android_metadata表: n 如果在sqlite中使用数据库一定会有一张android_metadata表,用来登记用户的 n 使用语言:zh_cn -----------------------------------------------------n b.数据库自动创建的过程及方法详细介绍: n n我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在 n n 很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用软件时创建 n n 出应用使用到的数据库表结构及添加一些初始化记录,另外在软件升级的时候,也需要对数n n 据表结构进行更新。那么,我们如何才能实现在用户初次使用或升级软件时自动在用户的手 n n 机上创建出应用需要的数据库表呢?总不能让我们在每个需要安装此软件的手机上通过手工 n n 方式创建数据库表吧?因为这种需求是每个数据库应用都要面临的,所以在Android系统,为n n 我们提供了一个名为SQLiteOpenHelper的抽象类,必须继承它才能使用,它是通过对数据库n n 版本进行管理来实现前面提出的需求。n -------------------------------------------8.详细介绍: 为了实现对数据库版本进行管理,SQLiteOpenHelper类提供了两个重要的方法,分别是 n n onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db, int oldVersion, intn n n newVersion),前者用于初次使用软件时生成数据库表,后者用于升级软件时更新数据库表结n n 构。当调用SQLiteOpenHelper的getWritableDatabase()或者getReadableDatabase()方法获n n 取用于操作数据库的SQLiteDatabase实例的时候,如果数据库不存在,Android系统会自动生 n n 成一个数据库,接着调用onCreate()方法,onCreate()方法在初次生成数据库时才会被调用 n n ,在onCreate()方法里可以生成数据库表结构及添加一些应用使用到的初始化数据。 n n onUpgrade()方法在数据库的版本发生变化时会被调用,一般在软件升级时才需改变版本号, n n 而数据库的版本是由程序员控制的,假设数据库现在的版本是1,由于业务的变更,修改了数n n 据库表结构,这时候就需要升级软件,升级软件时希望更新用户手机里的数据库表结构,为n n 了实现这一目的,可以把原来的数据库版本设置为2(有同学问设置为3行不行?当然可以,如 n n 果你愿意,设置为100也行),并且在onUpgrade()方法里面实现表结构的更新。当软件的版本 n n 升级次数比较多,这时在onUpgrade()方法里面可以根据原版号和目标版本号进行判断,然后 n n 作出相应的表结构及数据更新。 getWritableDatabase()和getReadableDatabase()方法都可以获取一个用于操作数据库的 n n SQLiteDatabase实例。但getWritableDatabase() 方法以读写方式打开数据库,一旦数据库n n 的磁盘空间满了,数据库就只能读而不能写,倘若使用的是getWritableDatabase() 方法就 n n 会出错。getReadableDatabase()方法先以读写方式打开数据库,如果数据库的磁盘空间满了 n n ,就会打开失败,当打开失败后会继续尝试以只读方式打开数据库。 ------------------------------------------------------------------------9.创建数据库的代码: n a.创建项目:DBSQLIte n b./DBSQLIte/src/com/credream/service/DBOpenHelter.java n n package com.credream.service; n n import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase.CursorFactory; n n public class DBOpenHelter extends SQLiteOpenHelper { //父类没有默认构造器,需要显示调用 public DBOpenHelter(Context context) { super (context, "credream.db", null, 1); //数据库创建完成后,默认会保存在<包>/database/文件夹下 //当修改版本号时候,会触发:onUpgrade方法 //第二个:指定数据库名称, //第三个:游标工厂,用来迭代,查询后的结果集,null代表使用系统默认的 n n 游标工厂//版本号,大于0 n } /** n* 这个方法是在数据库第一次被创建的时候调用的 n*/ @Override public void onCreate(SQLiteDatabase db) { //SQLiteDatabase这个类,封装了增删改查操作,也叫做数据库操作实例 db.execSQL("CREATE TABLE person (personid integer primary keyn n n autoincrement, name varchar(20))"); //这里也可以不写name的数据类型,因为sqlite是数据类型无关的,就是写n n 了varchar(20),也可以写入超过20的内容 n n } /** n* 当数据库的版本号变更的时候被调用 n*/ @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("alter table person add phone varchar(12) null"); n n } n n } --------------------------------------------------------2.在清单文件中写入测试环境 n n n n n n n n n n ---------------------------------------------------- 3./DBSQLIte/src/com/credream/test/PersonServiceTest.java package com.credream.test; n n import com.credream.service.DBOpenHelter; n n import android.test.AndroidTestCase; n n public class PersonServiceTest extends AndroidTestCase { //创建数据库,在<包>/database/ public void testCreateDB(){ DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n } n n } -------------------------------------------------------4.选择方法开始测试,然后,在data/data/<包>/database/下 n 查看并用sqlite打开生成的数据库检查是否正确---------------------------------------------然后将版本号,改成2,然后再次执行,看到,表已经被更新,增加了一列phone -----------------------------------------------5.了解sqlite工作的原理: n DBOpenHelter dbOpenHelter=new DBOpenHelter(getContext()); dbOpenHelter.getWritableDatabase(); n 打开getWritableDatabase();代码:

Android实验报告_基于SQLite的通信录

第一次实验Android界面设计 一. 实验目的及实验环境 1. 实验目的 1)掌握SQLiteOpenHelper类结构 2)掌握基于SQLite数据库的应用开发过程 3)掌握Content Provider发布数据的方法 4)掌握Content Resolver获取数据的方法 2.实验环境 系统开发平Android Studio 3.0 系统开发平台:Android 7.1 运行平台:Windows10 x64 运行环境:https://www.doczj.com/doc/e811366900.html, Framework SDK 2.0 二. 实验教材、组织方式、实验容 1.实验教材:Andorid开发与应用 2.组织方式:个人独立完成 2.实验容: 实现基于SQLite数据库的通信录应用,通过单击增加图标打开添加通信录界面,通过单击通信录中的各条信息可删除选中项。 三.方案设计 Android系统中集成了SQLite数据库,并且为数据库的操作提供了相关的类和方法,便于没有数据库开发经验的开发者编写程序。另外,Android平台中利用Content Provider机制来实现跨应用程序数据共享。一个应用程序可以通过Content Provider来发布自己的数据,其他的应用程序可以通过Content Resolver来获取共享数据。

四.运行结果

五.总结 通过这次实验掌握了SQLite OpenHelper类结构,掌握了基于SQLite数据库的应用开发过程以及Content Provider发布数据的方法和掌握Content Resolver 获取数据的方法。 六.附录:源代码 主布局文件activity_main.xml:

Android 实验报告 Sqlite 数据库操作

2、掌握Android的SQLite数据库设计; 3、掌握Android的Activity 和Fragement用法; 4、熟悉XML 和JSon 文件读取 三、实验内容 要求使用SQLite数据库实现用户注册和登录,读取数据库信息,退出时生成XML文件或JSON文件。 四、实验过程和结果 content_main.xml: MainActivity.java: RegisterActivity.java: public class RegisterActivity extends Activity { SQLiteDatabase db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(https://www.doczj.com/doc/e811366900.html,yout.content_register); /*start*/ db = SQLiteDatabase.openOrCreateDatabase(this.getFilesDir().toString()+"/user.db3", null); /**/ Button register = (Button)findViewById(R.id.register); register.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String username = ((EditText)findViewById(https://www.doczj.com/doc/e811366900.html,ername)).getText().toString(); String password = ((EditText)findViewById(R.id.password)).getText().toString(); try{ String sql = "create table if not exists user_info (_id integer " + " primary key autoincrement," + " username varchar(255)," + " password varchar(255)" + ")"; db.execSQL(sql); sql = "insert into user_info values( null,?,?)";

代理服务器设置

一般来说公司禁止上网最常采用的方法就是封IP+MAC地址. 在公司找一个能上网的人,在他电脑上开代理,在IE里填入他本人的电脑IP做为代理,IP端口为 808,方可实现上网,缺点就是代理人要是熟人,而且代理机开了你才能上网. 1)通过修改MAC上网,本人强力推荐此方法.一般来说在公司总有些电脑的MAC是没有封的,在网上下载一个扫描MAC的软件,然后查清本公司中哪些IP是能上网的,再用软件扫出能上网电脑的MAC来.把MAC做如下修改:我的电脑单击右键--->硬件--->设备管理器--->网络适配器--->双击网络适配器--->再双击网络适配器下的子菜单--->高级-->本地管理地址 --->值. 在值右边的空格填入你扫描出来能上网的MAC再点确定.如还不能上网建议再改一下IP(注意IP是没有人正使用的,不然会产生冲突,而MAC是可以二台电脑同时使用),再重启电脑生效. (2)如果高级选项里面没有"本地管理地址'选项.那就得自己去注册表里添加此选项了.在 电脑桌面左下角点"开始"--->运行--->打入 regedit--->HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001(如此处有ControlSet001和ControlSet002建议这二处下面的都修改,如图所 示)\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0008--->编辑-->新建-->字符串值-->此时会在最下面产生一个"新值 #1" ,点右键把它重名命为:NetworkAddress-->再双击NetworkAddress-->在数值数据里填入能上网的MAC点确定就OK.此时再开IE,尽情地冲浪吧~(自己必需有administrator权限方可修改注册表) 最后值得注意的就是,你使用别人的MAC上网时,你的电脑或是被你使用MAC的电脑会出现数据包的大量丢失,直接导致你的电脑或被使用MAC的电脑出现网络延迟,网页响应时间慢等原因.所以建议在使用别人的MAC上网时不要用BT等大量占带宽的软件.只是看看网页聊聊QQ.一般别人是不会察觉出来的.所丢失数据包也可忽略不计.切记切记. 如果你在公司打如其他网还是返回国税网的话也可以修改修改了Hosts文件. 如果输入其是显示该网页无法显示,可能是跟本没有联互联网,只是连了局域网,而是公司指定的就是内网的网址。 目前互联网上的各种攻击方式层出不穷,作为Web服务器管理员您是否为Web服务器受到攻击而忙碌不已,心力交瘁?CCProxy端口转发专版的发布将为您解决这一切烦恼。利用此专版您只需进行简单的设置就可以很好的将实际的Web服务器保护起来,并且不影响您的服务器的访问情况进行各种统计。 1.如果Web服务器是直接连在互联网上的,那么可以在互联网上的另一台机器上安装CCProxy,启动端口映射功能,具体设置如下: 目标地址:实际Web服务器的IP地址; 目标端口:80或其他,根据实际情况设置; 端口类型:HTTP; 本地端口:80或其他,根据实际情况设置。 设置好后,我们在做域名解析的时候只要把域名解析到装有CCProxy的机器上就行了,当有人通过域名访问我们的网站时,首先是连接到这个装有CCProxy的机器,然后再由它把访问请求通过端口映射功能转到真正的服务器,从而实现保护真正Web服务器的目的。

SQLite语法与Android数据库操作

SQLite语法与Android数据库操作 学习android的小伙伴们在使用Android的SQLiteDatabase类进行数据库操作的时候总会有一些力不从心,特别是对于初涉数据库的小伙伴来说更是如此。 这是因为Android的SQLiteDatabase原本就不是依赖于Android而存在的,而是单独的作为一个个体而存在的,有着自己特有的体系和语言,而这就是SQL 语法了。 关于SQLite数据库的理论知识网上一搜一大片,这里就不多说。SQLite是一个轻量型的数据库,它对于大型数据库来说功能少,因此只需要学习一些通用的SQL语法就能够轻松掌握,而这些SQL语法对于其他的数据库来说也是基本不变化的。 但SQLite有个缺点,那就是作为轻量级选手的它,如果要保存大量数据会力有不及,因此它在android中适合保存个人设置等没有大量数据的信息。 好了,下面就是正式学习SQLite了,只有掌握了SQLite,掌握SQL语法,才能对Android中的数据库操作运用自如。 SQLite的数据类型 与Java语言一样,SQLite也有其特有的数据类型,当然相比MySQL来说只有5种数据类型算是很少了 NULL:空值相当于Java中的null INTEGER:带符号的整型,相当于Java中的int型 REAL:浮点数字,相当于Java中float/double型 TEXT/VARCHAR:字符串文本,相当于Java中String类 BLOB:二进制对象,相当于Java中的byte数组,用于存放图片、声音等文件 Sqlite3中的约束 SQLite的约束是什么呢?约束就是限定数据库字段的条件,如果有个student数据表,它里面有一个age年龄的属性字段,我们要求数据库保存age 这个字段的时候必须有值,不能为空,那么就可以设置为:"age INTEGER NOT NULL"。这句话的意思就是age字段是不能为空的整型 NOT NULL :非空

售后服务设置代理服务器

(售后服务)设置代理服务器

设置代理服务器 代理服务器是众多网络服务器中的壹种,作为现代网络中的重要组成部分发挥着它应有的功能。实训6通过设置代理服务器和客户端来让实验者掌握代理服务器的具体功用。 将局域网接入到Internet,其实是壹种共享上网的方式。时至今日,上网通讯费仍不是低到让网民无所谓的地步,所以谈到共享上网,往往人们兴趣很大,因为这样大家均能够共用壹条电话线或专线上网,省去了许多网络投资,特别适合家庭用户和小型企业级用户共享上网方式。 实现共享上网于目前分为俩类,壹类是网络地址转换类(NAT),另壹类就是代理服务器类(ProxyServer)。于本次实训中,通过掌握代理服务器使用,了解局域网接入技术。 【实训内容】 ◎代理服务器软件CCProxy的应用 .1准备知识 .1.1网络地址转 网络地址转换(NAT,NetworkAddressTranslation)被广泛应用于各种类型Internet接入方式和各种类型的网络中。原因很简单,NAT不仅完美地解决了lP 地址不足的问题,而且仍能够有效地避免来自网络外部的攻击,隐藏且保护网络内部的计算机。 虽然NAT能够借助于某些代理服务器来实现,但考虑到运算成本和网络性能,很多时候均是于路由器上来实现的。

随着接入Internet的计算机数量的不断猛增,IP地址资源也就愈加显得捉襟见肘。事实上,除了中国教育和科研计算机网(CERNET)外,壹般用户几乎申请不到整段的C类IP地址。于其他ISP那里,即使是拥有几百台计算机的大型局域网用户,当他们申请IP地址时,所分配的地址也不过只有几个或十几个IP地址。显然,这样少的IP地址根本无法满足网络用户的需求,于是也就产生了NAT 技术。 1.NAT简介 借助于NAT,私有(保留)地址的"内部"网络通过路由器发送数据包时,私有地址被转换成合法的IP地址,壹个局域网只需使用少量IP地址(甚至是1个)即可实现私有地址网络内所有计算机和Internet的通信需求。 NAT将自动修改IP报文头申的源IP地址和目的IP地址,Ip地址校验则于NAT处理过程中自动完成。有些应用程序将源IP地址嵌入到IP报文的数据部分中,所以仍需要同时对报文进行修改,以匹配IP头中已经修改过的源IP地址。 2.NAT实现方式 NAT的实现方式有三种,即静态转换StaticNat、动态转换DynamicNat和端口多路复用OverLoad。 静态转换是指将内部网络的私有IP地址转换为公有IP地址,IP地址对是壹对壹的,是壹成不变的,某个私有IP地址只转换为某个公有IP地址。借助于静态转换,能够实现外部网络对内部网络中某些特定设备(如服务器)的访问。 动态转换是指将内部网络的私有IP地址转换为公用IP地址时,IP地址对是

Android面试之SQLite数据库

Android面试之SQLite数据库 鹭岛厦门是个很美丽的海滨城市,给我的感觉很舒适和悠闲,据说政府对到那工作的高新技术人才第一年有10万元的奖励,因为这个原因我很有兴趣的参加了一个厦门公司的面试。他们主要是研发VOIP方面的技术,对手机应用的性能优化和音频算法有较高的要求。 他们招人的薪资半年内涨了30万元,都一直都没有招到合适的人。为什么呢?因为他们要求技术好的同时,英语也要好。什么才叫好呢?就是可以用流利的英语和国外的团队无障碍交流。 这就为难很多程序员了。这里就不再讲英语的励志故事了,我们回到技术面试上。厦门这家公司对技术的要求还是比较高,问了很多对Android机制的理解问题,为什么面试官很在意对机制的理解呢?因为实际的项目中很多性能问题都是由于缺乏对Android运行机制的正确理解的程序员引发的。除了机制问题,现在印象比较深的就是关于SQLite数据库操作的性能优化问题。 面试题:如何对SQLite数据库中进行大量的数据插入? Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。SQLite是一个轻量的、跨平台的、开源的数据库引擎。SQLite每个数据库都是以单个文件(.db)的形式存在,这些数据都是以B-Tree 的数据结构形式存储在磁盘上。 使用SQLiteDatabase的insert,delete等方法或者execSQL方法默认都开启了事务,如果操作的顺利完成才会更新.db数据库。事务的实现是依赖于名为rollback journal文件,借助这个临时文件来完成原子操作和回滚功能。 大家可以在/data/data//databases/目录下看到一个和数据库同名 的.db-journal文件。 SQLite想要执行操作,需要将程序中的SQL语句编译成对应的SQLiteStatement,比如" select * from table1 ",每执行一次都需要将这个String类型的SQL语句转换成SQLiteStatement。如下insert的操作最终都是将ContentValues转成SQLiteStatementi: public long insertWithOnConflict(String table, String nullColumnHack, ContentValues initialValues, int conflictAlgorithm) { // 省略部份代码

代理服务器的安装及配置

代理服务器的安装及配置 1、设计目的: 1、局域网内没有与外网相连的机器,必须通过内网的代理服务器连接到外网; 2、为了获得更大的速度,通过带宽较大的代理服务器与目标主机连接; 3、同一地区未互联的不同网络通过代理建立连接; 2、设计内容:(操作系统、选用代理服务器软件、测试方法等...) 操作系统:具有Windows Xp Sp3 什么是代理服务器? 代理服务器是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页,而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息,并传送给你的浏览器。 代理服务器软件CCProxy的工作机制很象我们生活中常常提及的代理商,假设你的机器为A机,你想获得的数据由B机提供,代理服务器为C机,那么具体的连接过程是这样的: 首先,A机需要B机的数据,它与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。 3、设计步骤: 1.双击运行CCProxy安装文件。

. 2.点击“Next”按钮之后,您会看到下图界面,请记下您软件所安装的地址,后面注册时需要用到,我这里安装的地址为:C:\CCProxy,就是C盘下面的CCProxy文件夹下面。 3到此,我们算是安装成功了,我们此时还没有注册,如果你现在打开CCProxy,您将会看到下图所示,只支持3个用户,这对您做代理服务器是远远不够的,所以我们要先注册,注册时请先将CCProxy关闭。

. 4.安装与运行代理服务器软件:点击CCProxysetup.exe安装CCProxy代理服务器软件,安装完毕以后启动CCProxy软件。下列是代理服务器配置全过程。 5.然后在帐号管理里面进行设置,允许范围一般选择“允许部分”,验证类型可以根据需要选 择,一般默认为“IP地址”,这时就可以对帐号进行管理操作了。

android中使用sqlite

每个应用程序都要使用数据,Android应用程序也不例外,Android使用开源的、与操作系统无关的SQL数据库--大名鼎鼎的SQLite。SQLite是一款轻量级数据库,它的设计目的是嵌入式,而且它占用的资源非常少,在嵌入式设备中,可能只需要几百KB,这也是Android 系统采用SQLite 数据库的原因之一吧。 简介 ?轻量级 使用SQLite 只需要带一个动态库,就可以享受它的全部功能,而且那 个动态库的尺寸想当小。 ?独立性 SQLite 数据库的核心引擎不需要依赖第三方软件,也不需要所谓的“安 装”。 ?隔离性 SQLite 数据库中所有的信息(比如表、视图、触发器等)都包含在一个 文件夹内,方便管理和维护。 ?跨平台 SQLite 目前支持大部分操作系统,不至电脑操作系统更在众多的手机系 统也是能够运行,比如:Android。 ?多语言接口 SQLite 数据库支持多语言编程接口。 ?安全性 SQLite 数据库通过数据库级上的独占性和共享锁来实现独立事务处理。 这意味着多个进程可以在同一时间从同一数据库读取数据,但只能有一 个可以写入数据。 SQLite使用介绍 首先先来看一下本篇例子继承SQLiteOpenHelper 类实现的dbHelper 类。 package com.terry; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase;

如何设置代理服务器

怎样设置代理服务器 什么是代理服务器? 代理服务器是介于浏览器和Web服务器之间的一台服务器,当你通过代理服务器上网浏览时,浏览器不是直接到Web服务器去取回网页,而是向代理服务器发出请求,由代理服务器来取回浏览器所需要的信息,并传送给你的浏览器。 什么是免费代理服务器? 在使用代理猎手等软件搜索代理服务器地址时,会在验证状态栏中出现类似“要密码”、“Free”等字样。如果你把“Free”的地址设置为代理服务器,那你就会发现访问网页时不会要求你输入密码了。这就是“免费的代理服务器”。为什么会出现free的呢?有以下几种情况: 1.是系统漏洞,一旦被网管发现就会被堵上; 2.是善良的网管和其他有机会接近主机的人,将机器设成了代理服务器; 3.是真正的好心人,就是将自己的机器作为免费代理,造福广仁。这真值得钦佩!但被查封关闭得也最快。

4.是ISP商为了提高影响,在一段时间免费开放,一般很短。 使用代理服务器的好处 Proxy Server(代理服务器)是Internet链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(OSI)型的对话层,主要的功能有: 突破自身IP访问限制: 1.访问国外站点。教育网、169网等网络用户可以通过代理访问国外。 2.访问一些单位或团体部资源,如某大学FTP(前提是该代理地址在该资源的允许访问围之),使用教育网地址段免费代理服务器,就可以用于对教育网开放的各类FTP下载上传,以及各类资料查询共享等服务。 3.突破中国电信的IP封锁:中国电信用户有很多是被限制访问的,这种限制是人为的,不同Serve对地址的封锁是不同的。所以不能访问时可以换一个国外的代理服务器试试。 4.提高访问速度:通常代理服务器都设置一个较大的硬盘缓冲区,当有外界的信息通过时,同时也将其保存到缓冲区中,当其他用户

QQ代理服务器的设置

如何设置QQ代理服务器--QQ代理服务器的设置 2007-06-03 19:36QQ代理服务器的设置理服务器的原理 代理服务器的工作机制很象我们生活中常常提及的代理商,假设你的机器为A机,你想获得的数据由B机提供,代理服务器为C机,那么具体的连接过程是这样的。首先,A机需要B机的数据,它与C机建立连接,C机接收到A机的数据请求后,与B机建立连接,下载A机所请求的B机上的数据到本地,再将此数据发送至A机,完成代理任务。 代理服务器的功能 ●可以隐藏自己。你不用与目标机器打交道,目标服务器不会知道你的IP,他只知道代理服务器的IP。 ●可以访问一些有IP禁止访问的服务器。因为封锁只禁止了你和目标服务器的连接,但并没有禁止你与代理服务器的连接以及代理服务器与目标服务器的连接。 ●加快网络的读取的速度。通常代理服务器都是比较强劲的机器,假如你的网络不是很好,使用代理在一定的情况下可以加快网络的读取速度。注意,这是有条件的,并不是所有使用代理都能加快的。 谁提供免费的代理服务器 ●善良的服务器的系统管理员或能取得服务器管理权的人设置的。(简单的说通常就是用肉鸡做的) ●真正好心的人,在自己的服务器设置代理,造福大众。 ●一些ISP商为了提高影响,在一段时间内开放的免费代理。通常时间很短。 免费代理的收集 要收集代理,必须先知道一些默认的代理端口。通常HTTP代理的端口是80、3128、8080、8888;SOCK代理的端口是1080、1813;FTP代理的端口是21、2121。然后用扫描代理端口的软件去扫描指定的IP段和端口就行。 扫描代理犹如大海捞针,一天24小时一台机器能扫出几个真正能用的代理就很不错了。 影响代理速度的因素 ●代理服务器所在的网络。如果代理机器本身的网络带宽不好的话,直影响到代理的速度,你的网络再快也没用。 ●代理服务器的性能。如果代理服务器本身的配置不高,那一旦多人同时使用,就是直接影响代理服务器的速度。 ●你所访问的目标服务器。这也是影响代理速度的因素,你要访问对方,自然要以对方的速度为标准。 HTTP、SOCK、FTP代理的区别 ●浏览器用HTTP或SOCK代理。

火狐代理服务器设置

FireFox的设置和IE类似,打开FireFox浏览器,选择菜单栏的“工具/选项...”。 这时选择“高级/网络”,点设置,就出现下面的界面,就可以进行代理服务器的设置了,选中“手动配置代理”,然后填写代理服务器的地址和端口。 知道了设置方法,下一步就是找到一些免费而且可用的代理服务器地址,通常情况下代理服务器地址不很稳定,经常会改变,对于中国电信用户来说,香港、韩国、日本等代理服务器速度是最快的,对于此次海底光缆中断事件中,香港代理可能同样也无法访问国外,因此建议大家使用韩国的代理服务器。

下面是我找到的一些免费韩国和日本的代理服务器列表,我全部都亲自验证过,可供大家使用。 免费韩国代理服务器列表 165.228.128.10:3128 59.10.72.198:8080 125.248.206.194:8080 125.243.249.194:8080 210.107.249.50:3128 210.107.249.50:3124 210.180.39.92:8080 210.102.99.71:38466 免费日本代理服务器列表 58.80.207.41:3128 133.1.16.172:3127 150.65.32.66:3124 203.178.133.2:3128 203.178.133.10:3128 203.178.133.2:3124 203.178.133.3:3127 203.178.133.10:3124 名词解释:代理服务器 代理服务器英文全称是Proxy Server,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他 Internet站点取得网络信息时,须送出Request信号来得到回答,然后对方再把信息以bit方式传送回来。代理服务器是介于浏览器和Web 服务器之间的一台服务器,有了它之后,浏览器不是直接到Web服务器去取回

Android SQLite使用

Android 开发中使用SQLite 数据库 SQLite 介绍 SQLite 一个非常流行的嵌入式数据库,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite. SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。 图 1. SQLite 内部结构 SQLite 基本上符合 SQL-92 标准,和其他的主要 SQL 数据库没什么区别。它的优点就是高效,Android 运行时环境包含了完整的 SQLite。 SQLite 和其他数据库最大的不同就是对数据类型的支持,创建一个表时,可以在 CREATE TABLE 语句中指定某列的数据类型,但是你可以把任何数据类型放入任何列中。当某个值插入数据库时,SQLite 将检查它的类型。如果该类型与关联的列不匹配,则 SQLite 会尝试将该值转换成该列的类型。如果不能转换,则该值将作为其本身具有的类型存储。比如可以把一个字符串(String)放入INTEGER 列。SQLite 称这为“弱类型”(manifest typing.)。

?构造函数,调用父类 SQLiteOpenHelper 的构造函数。这个方法需要四个参数:上下文环境(例如,一个 Activity),数据库名字,一个可选的游标工厂(通常是 Null),一个代表你正在使用的数据库模型版本的整数。 ?onCreate()方法,它需要一个 SQLiteDatabase 对象作为参数,根据需要对这个对象填充表和初始化数据。 ?onUpgrage() 方法,它需要三个参数,一个 SQLiteDatabase 对象,一个旧的版本号和一个新的版本号,这样你就可以清楚如何把一个数据库从旧的模型转变到新的模型。 下面示例代码展示了如何继承 SQLiteOpenHelper 创建数据库:

相关主题
文本预览
相关文档 最新文档