摘要: SSL证书的申请: 成功在景安申请证书后,会得到一个有密码的压缩包文件,输入证书密码后解压得到五个文件:for Apache、for IIS、for Ngnix、for Other Server,这个是证书的几种格式,解压for IIS压缩包,会得到一个域名.pfx格式的证书,IIS8.0上需要用到 阅读全文
posted @ 2017-03-02 11:42 dodo-yufan 阅读(2742) 评论(1) 推荐(0) 编辑
摘要: 在使用windows2012 的服务器或云主机时,服务器安装不了iis服务。 提示 “无法打开运行空间池,服务器管理器winrm插件可能已损坏或丢失”。 这个问题可能的原因是您的机器未设置虚拟内存,可以用以下方法处理。 由于开启虚拟内存会导致硬盘IO性能下降,因此阿里云服务器初始状态未配置虚拟内存. 阅读全文
posted @ 2017-01-11 10:28 dodo-yufan 阅读(2667) 评论(0) 推荐(0) 编辑
摘要: 运行安装文件(ZendServer-CE-php-5.3.2-5.0.1-Windows_x86.exe)开始安装,选项请参照我的选择。 这里不做改动,维持默认选择即可 点击Browse按钮更改安装目录,比如这里设置的是D盘 更改Web Server Port为85 以避免跟IIS冲突,如果你没有I 阅读全文
posted @ 2016-07-18 10:34 dodo-yufan 阅读(2078) 评论(0) 推荐(0) 编辑
摘要: Android 中的定时任务一般有两种实现方式,一种是使用 Java API 里提供的 Timer 类, 一种是使用 Android 的 Alarm 机制。这两种方式在多数情况下都能实现类似的效果,但 Timer 有一个明显的短板,它并不太适用于那些需要长期在后台运行的定时任务。我们都知道,为 了能 阅读全文
posted @ 2016-05-10 17:42 dodo-yufan 阅读(22783) 评论(1) 推荐(0) 编辑
摘要: 9.5.2 使用 IntentService 话说回来,在本章一开始的时候我们就已经知道,服务中的代码都是默认运行在主线程 当中的,如果直接在服务里去处理一些耗时的逻辑,就很容易出现 ANR(Application Not Responding)的情况。所以这个时候就需要用到 Android 多线程 阅读全文
posted @ 2016-05-10 17:40 dodo-yufan 阅读(10097) 评论(1) 推荐(2) 编辑
摘要: 9.5.1 使用前台服务 服务几乎都是在后台运行的,一直以来它都是默默地做着辛苦的工作。但是服务的系统 优先级还是比较低的,当系统出现内存不足的情况时,就有可能会回收掉正在后台运行的服 务。如果你希望服务可以一直保持运行状态,而不会由于系统内存不足的原因导致被回收, 就可以考虑使用前台服务。前台服务 阅读全文
posted @ 2016-05-10 17:38 dodo-yufan 阅读(5737) 评论(0) 推荐(0) 编辑
摘要: 9.4 服务的生命周期 之前章节我们学习过了活动以及碎片的生命周期。类似地,服务也有自己的生命周期, 前面我们使用到的 onCreate()、onStartCommand()、onBind()和 onDestroy()等方法都是在服务的生命周期内可能回调的方法。 9.4 服务的生命周期 之前章节我们 阅读全文
posted @ 2016-05-10 17:36 dodo-yufan 阅读(1122) 评论(0) 推荐(0) 编辑
摘要: 9.3.3 活动和服务进行通信 上一小节中我们学习了启动和停止服务的方法,不知道你有没有发现,虽然服务是在活 动里启动的,但在启动了服务之后,活动与服务基本就没有什么关系了。确实如此,我们在 活动里调用了 startService()方法来启动 MyService 这个服务,然后 MyService 阅读全文
posted @ 2016-05-10 17:35 dodo-yufan 阅读(2206) 评论(0) 推荐(0) 编辑
摘要: 9.3 服务的基本用法 了解了 Android 多线程编程的技术之后,下面就让我们进入到本章的正题,开始对服务 的相关内容进行学习。作为 Android 四大组件之一,服务也少不了有很多非常重要的知识点, 那我们自然要从最基本的用法开始学习了。 9.3.1 定义一个服务 首先看一下如何在项目中定义一 阅读全文
posted @ 2016-05-10 17:31 dodo-yufan 阅读(996) 评论(0) 推荐(0) 编辑
摘要: 9.2.4 使用 AsyncTask 不过为了更加方便我们在子线程中对 UI 进行操作,Android 还提供了另外一些好用的工 具,AsyncTask 就是其中之一。借助 AsyncTask,即使你对异步消息处理机制完全不了解, 也可以十分简单地从子线程切换到主线程。当然,AsyncTask 背后 阅读全文
posted @ 2016-05-10 17:29 dodo-yufan 阅读(678) 评论(0) 推荐(0) 编辑
摘要: 9.1 服务是什么 服务(Service)是 Android 中实现程序后台运行的解决方案,它非常适合用于去执行那 些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使 当程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。 不过需要注意的是,服务 阅读全文
posted @ 2016-05-10 17:27 dodo-yufan 阅读(4876) 评论(0) 推荐(0) 编辑
摘要: 错误:连接数据库的时候提示:SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确 C:\Documents and Settings\Administrator>"C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\ 阅读全文
posted @ 2016-04-13 13:37 dodo-yufan 阅读(9271) 评论(2) 推荐(0) 编辑
摘要: 播放视频文件其实并不比播放音频文件复杂,主要是使用 VideoView 类来实现的。这个 类将视频的显示和控制集于一身,使得我们仅仅借助它就可以完成一个简易的视频播放器。 VideoView 的用法和 MediaPlayer 也比较类似,主要有以下常用方法: 方法名 功能描述 setVideoPat 阅读全文
posted @ 2016-04-01 09:27 dodo-yufan 阅读(741) 评论(0) 推荐(0) 编辑
摘要: 在 Android 中播放音频文件一般都是使用 MediaPlayer 类来实现的,它对多种格式的音 频文件提供了非常全面的控制方法,从而使得播放音乐的工作变得十分简单。下表列出了 MediaPlayer 类中一些较为常用的控制方法。 方法名 功能描述 setDataSource() 设置要播放的音 阅读全文
posted @ 2016-04-01 09:24 dodo-yufan 阅读(2302) 评论(0) 推荐(0) 编辑
摘要: 虽然调用摄像头拍照既方便又快捷,但并不是每一次我们都需要去当场拍一张照片的。 因为每个人的手机相册里应该都会存有许许多多张照片,直接从相册里选取一张现有的照 片会比打开相机拍一张照片更加常用。一个优秀的应用程序应该将这两种选择方式都提供给 用户,由用户来决定使用哪一种。下面我们就来看一下,如何才能实 阅读全文
posted @ 2016-04-01 09:20 dodo-yufan 阅读(9072) 评论(0) 推荐(0) 编辑
摘要: 很多应用程序都可能会使用到调用摄像头拍照的功能,比如说程序里需要上传一张图片 作为用户的头像,这时打开摄像头拍张照是最简单快捷的。下面就让我们通过一个例子来学 习一下,如何才能在应用程序里调用手机的摄像头进行拍照。 新建一个 ChoosePicTest 项目,然后修改 activity_main.x 阅读全文
posted @ 2016-03-31 17:44 dodo-yufan 阅读(10641) 评论(0) 推荐(0) 编辑
摘要: 8.3.1 将程序运行到手机上 不必我多说,首先你需要拥有一部 Android 手机。现在 Android 手机早就不是什么稀罕 物,几乎已经是人手一部了,如果你还没有话,抓紧去购买吧。 想要将程序运行到手机上,我们需要先通过数据线把手机连接到电脑上。然后进入到设 置→开发者选项界面,并在这个界面中 阅读全文
posted @ 2016-03-31 17:41 dodo-yufan 阅读(772) 评论(0) 推荐(0) 编辑
摘要: 8.2 接收和发送短信 收发短信应该是每个手机最基本的功能之一了,即使是许多年前的老手机也都会具备这 项功能,而 Android 作为出色的智能手机操作系统,自然也少不了在这方面的支持。每个 Android 手机都会内置一个短信应用程序,使用它就可以轻松地完成收发短信的操作,如 图 8.4 所示。 阅读全文
posted @ 2016-03-31 17:38 dodo-yufan 阅读(6655) 评论(1) 推荐(0) 编辑
摘要: 8.1 使用通知 通知(Notification)是 Android 系统中比较有特色的一个功能,当某个应用程序希望向 用户发出一些提示信息,而该应用程序又不在前台运行时,就可以借助通知来实现。发出一 条通知后,手机最上方的状态栏中会显示一个通知的图标,下拉状态栏后可以看到通知的详 细内容。Andr 阅读全文
posted @ 2016-03-31 17:32 dodo-yufan 阅读(1208) 评论(0) 推荐(0) 编辑
摘要: 1. 问题描述:在Android中,用程序访问Sdcard时,有时出现“java.io.IOException: open failed: EACCES (Permission denied)", 这是由于没有增加sdcard对应权限而导致的。 2. 解决办法: 在mainfest文件中,增加以下权 阅读全文
posted @ 2016-03-31 17:10 dodo-yufan 阅读(5411) 评论(0) 推荐(0) 编辑
摘要: 一、如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了 阅读全文
posted @ 2016-03-17 09:56 dodo-yufan 阅读(60353) 评论(1) 推荐(0) 编辑
摘要: 首先,先看一下permission定义的格式: 上面代码来自官方文档: http://developer.android.com/guide/topics/security/security.html。 propectionLevel这个属性是必须声明,告诉系统通知用户的应用要求许可,或允许谁认为获 阅读全文
posted @ 2016-03-17 09:01 dodo-yufan 阅读(1615) 评论(0) 推荐(0) 编辑
摘要: Android的状态栏通知(Notification) 如果需要查看消息,可以拖动状态栏到屏幕下方即可查看消息。 步骤: 1获取通知管理器NotificationManager,它也是一个系统服务 2建立通知Notification notification = new Notification(i 阅读全文
posted @ 2016-03-12 10:27 dodo-yufan 阅读(912) 评论(0) 推荐(0) 编辑
摘要: Notification即通知,用于在通知栏显示提示信息。 在较新的版本中(API level > 11),Notification类中的一些方法被Android声明deprecated(弃用),其实基本上相当于全部弃用了,因为这个类本身方法就少得可怜。 Android官方声明弃用,一定有它的理由, 阅读全文
posted @ 2016-03-11 09:37 dodo-yufan 阅读(640) 评论(0) 推荐(0) 编辑
摘要: 一、什么是注释 说起注释,得先提一提什么是元数据(metadata)。所谓元数据就是数据的数据。也就是说,元数据是描述数据的。就象数据表中的字段一样,每个字段描述了这个字段下的数据的含义。而J2SE5.0中提供的注释就是java源代码的元数据,也就是说注释是描述java源代码的。在J2SE5.0中可 阅读全文
posted @ 2016-03-11 09:28 dodo-yufan 阅读(3726) 评论(0) 推荐(0) 编辑
摘要: 简单起见,我们还是在上一章中 DatabaseTest 项目的基础上继续开发,通过内容提供器 来给它加入外部访问接口。 打开 DatabaseTest 项目,首先将 MyDatabaseHelper 中使用 Toast 弹出创建数据库成功的提示去除掉,因为跨程序访问时我们不能直接使用 Toast。然 阅读全文
posted @ 2016-03-10 08:57 dodo-yufan 阅读(3173) 评论(0) 推荐(0) 编辑
摘要: 我们学习了如何在自己的程序中访问其他应用程序的数据。总体来说思 路还是非常简单的,只需要获取到该应用程序的内容 URI,然后借助 ContentResolver 进行CRUD 操作就可以了。可是你有没有想过,那些提供外部访问接口的应用程序都是如何实现这种功能的呢?它们又是怎样保证数据的安全性,使得隐 阅读全文
posted @ 2016-03-10 08:46 dodo-yufan 阅读(1212) 评论(0) 推荐(0) 编辑
摘要: 读取系统联系人 由于我们之前一直使用的都是模拟器,电话簿里面并没有联系人存在,所以现在需要自 己手动添加几个,以便稍后进行读取。打开电话簿程序,界面如图 7.1 所示。 图 7.1 可以看到,目前电话簿里是没有任何联系人的,我们可以通过点击 Create a new contact按钮来对联系人进行 阅读全文
posted @ 2016-03-08 09:02 dodo-yufan 阅读(2539) 评论(0) 推荐(0) 编辑
摘要: 我们学了 Android 数据持久化的技术,包括文件存储、SharedPreferences 存 储、以及数据库存储。不知道你有没有发现,使用这些持久化技术所保存的数据都只能在当 前应用程序中访问。虽然文件和 SharedPreferences 存储中提供了 MODE_WORLD_READABLE 阅读全文
posted @ 2016-03-08 08:47 dodo-yufan 阅读(2969) 评论(1) 推荐(0) 编辑
摘要: ContentProvider是Android四大组件之一,网上也有不少关于它的文章,基本用法都可以查到,但关于UriMatcher在其中的作用,文章中都有例子,但我觉得还没有说清楚。 先说为什么用UriMatcher。 ContentProvider向外界提供了一个标准的,也是唯一的用于查询的接口 阅读全文
posted @ 2016-03-03 18:52 dodo-yufan 阅读(11445) 评论(0) 推荐(0) 编辑
摘要: static{}(即static块),会在类被加载的时候执行且仅会被执行一次,一般用来初始化静态变量和调用静态方法,下面我们详细的讨论一下该语句块的特性及应用。 一、在程序的一次执行过程中,static{}语句块中的内容只被执行一次,看下面的示例: 示例一 [java] view plain cop 阅读全文
posted @ 2016-03-03 16:47 dodo-yufan 阅读(574) 评论(0) 推荐(0) 编辑
摘要: 6.5.1 使用事务 前面我们已经知道,SQLite 数据库是支持事务的,事务的特性可以保证让某一系列的操 作要么全部完成,要么一个都不会完成。那么在什么情况下才需要使用事务呢?想象以下场 景,比如你正在进行一次转账操作,银行会将转账的金额先从你的账户中扣除,然后再向收 款方的账户中添加等量的金额。 阅读全文
posted @ 2016-03-03 14:55 dodo-yufan 阅读(947) 评论(0) 推荐(0) 编辑
摘要: 虽然 Android 已经给我们提供了很多非常方便的 API 用于操作数据库,不过总会有一些 人不习惯去使用这些辅助性的方法,而是更加青睐于直接使用 SQL 来操作数据库。这种人 一般都是属于 SQL 大牛,如果你也是其中之一的话,那么恭喜,Android 充分考虑到了你们 的编程习惯,同样提供了一 阅读全文
posted @ 2016-03-03 14:52 dodo-yufan 阅读(967) 评论(0) 推荐(0) 编辑
摘要: 掌握了查询数据的方法之后,你也就将数据库的 CRUD 操 作全部学完了。不过千万不要因此而放松,因为查询数据也是在 CRUD 中最复杂的一种 操作。 我们都知道 SQL 的全称是 Structured Query Language,翻译成中文就是结构化查询语言。 它的大部功能都是体现在“查”这个字上 阅读全文
posted @ 2016-03-03 14:51 dodo-yufan 阅读(19883) 评论(1) 推荐(0) 编辑
摘要: 删除数据对你来说应该就更简单了,因为它所需要用到的知识点你全部已经学过了。 SQLiteDatabase 中提供了一个 delete()方法专门用于删除数据,这个方法接收三个参数,第一 个参数仍然是表名,这个已经没什么好说的了,第二、第三个参数又是用于去约束删除某一 行或某几行的数据,不指定的话默认 阅读全文
posted @ 2016-03-03 14:49 dodo-yufan 阅读(15997) 评论(0) 推荐(0) 编辑
摘要: 学习完了如何向表中添加数据,接下来我们看看怎样才能修改表中已有的数据。 SQLiteDatabase 中也是提供了一个非常好用的 update()方法用于对数据进行更新,这个方法 接收四个参数,第一个参数和 insert()方法一样,也是表名,在这里指定去更新哪张表里的数据。第二个参数是 Conte 阅读全文
posted @ 2016-03-03 14:47 dodo-yufan 阅读(18189) 评论(0) 推荐(1) 编辑
摘要: 现在你已经掌握了创建和升级数据库的方法,接下来就该学习一下如何对表中的数据进 行操作了。其实我们可以对数据进行的操作也就无非四种,即 CRUD。其中 C 代表添加 (Create),R 代表查询(Retrieve),U 代表更新(Update),D 代表删除(Delete)。每一种操 作又各自对应了 阅读全文
posted @ 2016-03-03 14:44 dodo-yufan 阅读(7374) 评论(0) 推荐(0) 编辑
摘要: 如果你足够细心,一定会发现 MyDatabaseHelper 中还有一个空方法呢!没错,onUpgrade() 方法是用于对数据库进行升级的,它在整个数据库的管理工作当中起着非常重要的作用,可 千万不能忽视它哟。 目前 DatabaseTest 项目中已经有一张 Book 表用于存放书的各种详细数据 阅读全文
posted @ 2016-03-03 14:42 dodo-yufan 阅读(3951) 评论(0) 推荐(0) 编辑
摘要: SQLite 是一款轻量级的关系型数据库,它的运算速度非常快, 占用资源很少,通常只需要几百 K 的内存就足够了,因而特别适合在移动设备上使用。SQLite 不仅支持标准的 SQL 语法,还遵循了数据库的 ACID 事务,所以只要你以前使用过其他的 关系型数据库,就可以很快地上手 SQLite。而 阅读全文
posted @ 2016-03-03 14:40 dodo-yufan 阅读(47671) 评论(1) 推荐(0) 编辑
摘要: 既然是实现记住密码的功能,那么我们就不需要从头去写了,因为在上一章中的最佳实 践部分已经编写过一个登录界面了,有可以重用的代码为什么不用呢?那就首先打开 BroadcastBestPractice 项目,来编辑一下登录界面的布局。修改 login.xml 中的代码,如下 所示: <TableLayo 阅读全文
posted @ 2016-03-03 14:23 dodo-yufan 阅读(4594) 评论(0) 推荐(0) 编辑