PHP用SMTP发邮件(支持SSL)

PHP用SMTP发邮件(支持SSL)

2年前 (2015-06-14) 浏览: 245 评论: 0

在做安卓大作业时,考虑到可以在APP加入邮件通知、忘记密码邮件重置密码的功能,极客人在虚拟主机中加入PHP用SMTP发邮件(支持SSL)的代码,同时使用自己的域名邮箱[email protected]进行了测试。 测试效果: PHP用SMTP发邮件(支持SSL)代码 注意:请自行下载PHPMailer_v5.1解压到虚拟主机,引入PHPMailer的核心文件class.phpmailer.php。(代码来自互联网,终极来源存疑)    

Android开发使用FontAwesome图标字体

Android开发使用FontAwesome图标字体

2年前 (2015-06-11) 浏览: 193 评论: 0

英文原文参考:https://github.com/liltof/font-awsome-for-android 在前面一篇文章中我向大家介绍了在WEB前端中使用FontAwesome字体。 Font-Awesome 是为Bootstrap设计的一个图标集合字体,里面包含了300多个常用图标。使用Font-Awesome还具有如下优点: 1. 减少了图标的绘制工作 2. 可以设置图标的颜色和大小 3. 减少了图标的大小并且可以减少apk的大小,只需要一个图标字体文件即可,不需要各种尺寸的图标文件了,比如 HDPI、XHDPI等各种尺寸的图标。 Android开发使用FontAwesome图标字体 到Font-Awesome主页下载Font-Awesome字体(fontawesome-webfont.ttf)文件并放到项目的assets目录下,找到需要用的图标对应的字符串(font-awsome-for-android 包含了一份图标和字符串的对应文件,最新的对应关系在下载的Font-Awesome字体中的css目录中的font-awesome.css文件中查找),在TextView中设置需要使用的图标文字,然后设置TextView的字体为自定义的Font-Awesome字体。   xml布局文件代码   java代码 另外如果需要在使用Drawable的地方使用Font-Awesome图标,则可以自定义一个Drawable,然后在代码中使用该Drawable,详细使用方式请参考fonticon这个示例项目:https://github.com/shamanland/fonticon 另外除了Font-Awesome图标字体以外,还有其他的图标字体,例如 http://icomoon.io/

安卓开发实现沉浸式状态栏

安卓开发实现沉浸式状态栏

2年前 (2015-05-27) 浏览: 698 评论: 1

自android4.4出来以后,沉浸式状态栏莫名地就火了起来,而最近,极客人的安卓手机无意中更新完几个常用软件,比如天天动听、wps office,发现这些软件大体上没什么改动,不过都陆续实现了沉浸式状态栏效果。极客人当初第一次见到这个名词时,以为这是个很高大上的技术,不知道你也是否也觉得。不过真正知晓以后所谓的、传说中的沉浸式状态栏是什么东西时,才发现真是“见面不如闻名”。 不管沉浸式是否高大上,但它就是很火,也成为刷机论坛各个刷机包炒作的看点。极客人在此还是向大家介绍怎么在安卓开发中实现安卓4.4及以上的手机应用实现沉浸式状态栏效果。 安卓开发实现沉浸式状态栏的代码相当简单。在activity代码中加入以下代码即可: 安卓开发实现沉浸式状态栏代码:   代码解析: Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT这句是获取当前手机SDK版本号大于或等于Build.VERSION_CODES.KITKAT(安卓4.4,详情请看附录)时及即执行如下代码: Build.VERSION_CODES类:目前已知的SDK版本号的枚举类,这些值可以在SDK中找到,每次官方发布,这些值都是单调递增。 SDK版本号附录: 第一版: Build.VERSION_CODES.BASE 1.1版: Build.VERSION_CODES.BASE_1_1 1.5版: Build.VERSION_CODES.CUPCAKE 此版官方未发布: Build.VERSION_CODES.CUR_DEVELOPMENT 1.6版: Build.VERSION_CODES.DONUT 2.0版: Build.VERSION_CODES.ECLAIR 2.0.1版: Build.VERSION_CODES.ECLAIR_0_1 2.1版: Build.VERSION_CODES.ECLAIR_MR1 2.2版: Build.VERSION_CODES.FROYO 2.3版: Build.VERSION_CODES.GINGERBREAD 2.3.3版: Build.VERSION_CODES.GINGERBREAD_MR1 3.0版: Build.VERSION_CODES.HONEYCOMB 3.1版: Build.VERSION_CODES.HONEYCOMB_MR1 3.2版: Build.VERSION_CODES.HONEYCOMB_MR2 4.0版: Build.VERSION_CODES.ICE_CREAM_SANDWICH 4.0.3版: Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1 4.1版: Build.VERSION_CODES.JELLY_BEAN 4.2版: Build.VERSION_CODES.JELLY_BEAN_MR1 4.3版:Build.VERSION_CODES.JELLY_BEAN_MR2+NEWLINE); 4.4版:Build.VERSION_CODES.KITKAT); 注意: ①加入如下代码的界面,所有控件都会向上移,但是标题栏“actionbar”除外,极客人鼓捣了好久代码也没解决怎么把actionbar放在手机界面的顶部,所以建议大家将activity的主题theme设置为:“noactionbar”。实现方法如下: 在清单文件中activity标签中添加: ②你可能需要自己写个标题栏在布局的顶部 如果你有更好的方法,欢迎留言共同学习!

JAVA(安卓)接入图灵机器人

JAVA(安卓)接入图灵机器人

2年前 (2015-05-18) 浏览: 242 评论: 0

图灵机器人是极客人在一个公众号使用过程中发现的,它是一款人工智能的免费开放的API,可以对用户输入的问题(天气、问候、查火车票、看新闻、讲笑话等等)进行人性化的回复,然后我将其引入到了自己的微信公众号。在学习安卓开发过程中,我就想到将其加到java中,下面是我实现的无界面控制台代码。如果你对图灵机器人感兴趣,不妨关注我的公众号。 JAVA(安卓)接入图灵机器人代码 上面的代码需要引入json.jar包,因为图灵机器人返回的是个json格式字符串,需要用户自己做json解析。对于json解析的方法,我的前面一片转载文章又详细介绍:解析json数据,你在申请图灵机器人的API后,将 这句代码中的"yourapikey"换成你自己的。 测试效果:

SSD8_EX1【socket通信的java实现代码】

SSD8_EX1【socket通信的java实现代码】

2年前 (2015-05-17) 浏览: 103 评论: 0

问题概述 实现EchoServer和EchoClient类,其中EchoServer监听某一端口号(启动时,通过参数传入),等待客户端访问;EchoClient根据启动时传入的服务器地址(IP地址或域名)和端口号连接该服务;连接后,读取用户在命令行下的输入,将该输入传输给EchoServer;EchoServer接收后,向EchoClient返回“EchoServer received: ” + 用户输入信息;EchoClient接收到返回信息后输出到命令行,并继续等待用户输入 1、客户端EchoClient.java代码   2、单线程服务器端EchoServer.java代码 3、多线程服务器端代码 ThreadEchoServer.java: Handler.java  

网站屏蔽垃圾评论和恶意访问、采集

网站屏蔽垃圾评论和恶意访问、采集

3年前 (2015-05-06) 浏览: 632 评论: 0

对于站长来说,垃圾评论都是一件比较苦恼的事,垃圾评论常常夹杂各种广告内容,而且过多的垃圾评论还会加大服务器的负担.垃圾评论的发起者往往是网络机器人,因为没有哪个正常人费时费力跑到你的网站自己受到敲字发广告等垃圾评论.最近极客人也自己结合了网站的代码,自己做了一个网络机器人,实现了短时间内打开下载几十个页面并且采集下载页面中的图片——当然是拿自己的网站做试验. 这篇文章主要分两部分,一是屏蔽网络机器人发垃圾评论;二是防止恶意访问刷新、采集图片耗费服务器资源和流量。 一、网站屏蔽机器人垃圾评论(利用PHP) 本篇文章屏蔽机器人的思路是屏蔽掉一些UA信息为空及其它典型是机器人UA(USER_AGENT,以下简称为UA)的访问用户。实现原理是通过php代码识别来访用户的UA信息,和典型的机器人UA信息进行比对,比对确认是机器人访问后禁止该用户访问。至于怎么查看UA,大家可以分析一下自己的网站日志。为此极客人综合网上的代码写了下面的代码。 为了在机器人访问网页第一时间就实行封禁,对于wordpress主题网站,建议将下面的代码添加到wordpress主题文件夹下header.php文件内容的最前面。极客人在此更建议的方式是:将下面的函数和执行代码书写在单独的一个PHP文件中,然后再在header.php文件中进行调用(因为header中代码太杂以后不好看); 此代码对任何支持PHP语言网站程序都有效, 屏蔽空UA的antiEmptyUA()函数代码: 函数调用 antiEmptyUA(); 二、防止访问者或机器人恶意频繁刷新、大流量访问 如果说发广告垃圾评论的人是损人利己,那么利用网络机器人进行频繁刷新、大量流量攻击的人就是损人不利己了。当然极客人觉得“存在即合理”,人家主动对一个网站发动攻击,或许是哪里得罪了人家,想通过搞瘫你的网站来小小惩罚你一下。比如,我最近就很想(不过没实施,想想还是算啦)对前几天转载我的文章不加版权,还说自己是写的人进行一下网站攻击。所以,在你专心研究怎么防止别人恶意访问的同时,极客人在此提醒你以后转载别人的文章真的还是加一下版权,尊重作者的劳动成果。 下面是本站的效果截图: 下述代码和上面的代码一样,建议加在header.php最前面或者其他网站程序最先执行代码的最前面 防止频繁访问的anticc()函数代码: 函数调用方法: anticc(2);根据你的需求修改时间值“2” 以上代码中function anticc($time_sep)的“$time_sep”是控制$time_sep秒中内允许用户访问一次,比如$time_sep=3时,如果用户在3秒内访问超过一次,系统则会提示“警告:请求过于频繁”,并且只有等待三秒后才能访问本网站。具体效果你可以在王柏元的博客,狂按F5刷新,体验一下。 三、利用htaccess屏蔽机器人垃圾评论(推荐) 这个方法还是屏蔽空UA的机器人,但是效率会比PHP高很多,这里是屏蔽机器人直接通过wp-comments-post.php发垃圾评论。 四、禁止垃圾评论IP 直接将垃圾评论的IP加入黑名单,该IP访问时直接“403无权限访问”,还可以节约虚拟主机的流量。(但是一般垃圾评论的IP经常会变!) 由于文字较多,请参看我的一篇独立博文:虚拟主机怎样屏蔽指定IP或网段做详细了解,在此不赘述。 五、终极方法 验证码,安装验证码插件。这个方法比上面的都有效,但是要安装插件。原理不解释。

提升流畅度 谷歌推全新安卓开发语言Sky

提升流畅度 谷歌推全新安卓开发语言Sky

3年前 (2015-05-04) 浏览: 220 评论: 3

转自 中关村在线 作者:张金梁 |  责编:魏景芳     据外媒报道,在日前举行Dart开发者峰会上,谷歌对外正式展示了Android最新的开发语言Sky。据悉,Sky本质上就是谷歌自主的网页开发语言Dart。 谷歌表示,目前Sky只是一次开源的尝试。但相对于传统的Android应用开发方式,Sky有着多方面优势。Sky的最主要目的包括提高运行速度和响应速度。在大部分设备上,应用流畅的标准都是实现60FPS的帧率。不过,Dart团队希望实现高达120FPS的帧率。目前在Android平台上,许多应用连标准的60FPS帧率都难以达到,更不用说120FPS。 Dart团队展示了一款演示应用,每帧的绘制速度仅为1.2毫秒。尽管这只是一次简单的展示,但这意味着,对于开发流畅而复杂的应用来说,Sky有着很大的空间,这也使120FPS的帧率成为了可能。该团队表示,Sky的应用程序接口(API)不会影响界面的主线程,这意味着即使应用运行速度变慢,用户界面仍将保持流畅的响应速度。 Sky并不依赖于平台,其代码可以运行在Android、iOS,以及任何集成了Dart虚拟机的平台上。这类应用的运行类似于网站。应用的很大一部分基于HTTP,这意味着开发者可以进行持续的开发,并确保所有用户一直使用最新版本。这款演示应用的弱点在于无法离线运行,而启动应用则需要1到2秒钟时间,因为应用需要下载数据。不过,这两方面的问题可以通过缓存机制来解决。 基于HTTP的模式使开发变得很简单。开发者不必编辑代码、编译并打包,这些代码可以在HTTP服务器上编辑。而用户只需关闭并重新打开应用,即可完成应用的“升级”。这就像是一款网页浏览器。Android开发者可以使用Sky Framework,这提供了一整套Material Design小工具,帮助开发者方便地增加操作栏、触控效果、导航面板,以及Android应用中所需的一切元素。 与普通应用类似,Sky应用可以获得Android的全部权限和API,但结合来自网页服务器的自动升级功能,这将带来信息安全问题。不过目前,Sky仅仅只是一个试验项目。在Sky成为一种主流的Android应用解决方案之前,Sky团队需要解决这些问题。该团队的GitHub页面显示:“我们仍在对Sky进行频繁地迭代,这意味着框架和底层引擎有可能以不兼容的方式出现改变。

安卓虚拟机加速—Intel HAXM加速媲美真机

安卓虚拟机加速—Intel HAXM加速媲美真机

3年前 (2015-05-04) 浏览: 142 评论: 0

引语:安卓虚拟机天生就慢? 安卓虚拟机的速度一直以慢“著称”,经常卡顿的安卓虚拟机对于开发者来说是一件十分痛苦的事情,这极大地影响到了开发者的效率和心情。下面我想大家介绍一种加速安卓虚拟机的方法,如果你的电脑有一颗支持Intel(R) Virtualization Technology (VT) 的intel CPU(你可以不管什么是VT技术,只要你是i5或以上的intelCPU,一般都有这项技术,如果是AMD的CPU应该就不能享受下面的“福利”了),你不妨试一下,极客人自从使用了安卓虚拟机加速,运行、调试应用的速度完全达到了真机速度。 一、下载CPU/aBI为intel atom的安卓系统镜像 肯定考虑到兼容性问题和其他极客人也不知道的原因,网上下载的现成的安卓虚拟机往往是“armeabi-v7a”,这个架构的CPU系统镜像不Intel(R) Virtualization Technology (VT) 的硬件加速,这是导致安卓虚拟机卡慢的原因,可能大部分的朋友和极客人以前的想法一样,是java虚拟机拖慢了安卓虚拟机的速度。 打开SDK管理器 请按图中所述选择一项intel的系统镜像下载: Intel x86 Atom System Image Intel x86 Atom_64 System Image ARM EABI v7a System Image 二、下载并安装 Intel HAXM 扩展 打开SDK管理器,如图勾选Intel HAXM 下载并安装   三、新建CPU/ABI为Intel Atom的安卓虚拟机 完成上面几步后新建CPU/ABI为Intel Atom的安卓虚拟机,然后启动这一虚拟机就行了,你会发现安卓虚拟机天生就慢的想法是不对的!   四、相关下载: 安卓5.0、API21、CPU/ABI为intel atpm的系统镜像的下载地址:

Android中资源详解(初级篇)

Android中资源详解(初级篇)

3年前 (2015-05-01) 浏览: 71 评论: 0

一、Android中资源分类详解   1、Android资源分类 Android中的资源分为两大类 : 可直接访问的资源, 无法直接访问的原生资源; -- 直接访问资源 : 这些资源可以使用 R. 进行访问, 都保存在res目录下, 在编译的时候, 会自动生成R.java 资源索引文件; -- 原生资源 : 这些资源存放在assets下, 不能使用 R类 进行访问, 只能通过 AssetManager 以二进制流形式读取资源; 2、Android资源详解   res目录下资源详解 : -- res/animator : 属性动画的XML文件目录, 属性动画就是定义起始结束, 动做, 重复时间等参数齐全的动画; -- res/anim : 补间动画的XML文件目录, 补间动画是只定义 起始 结束帧, 中间的动作由系统进行计算获取动作过程; -- res/color : 颜色列表的XML文件目录; -- res/drawable : 存放真实的位图文件, 也可以存放Drawable对象及子类对象的XML文件; -- res/layout : 界面布局文件目录; -- res/menu : 程序中使用的菜单文件目录, 该文件下的XML文件可以应用与 选项菜单, 子菜单, 上下文菜单等; -- res/raw : 存放原生资源, 与assets目录作用相同, 可以通过调用openRawResource(int)方法获取二进制输入流, 与asstes相似, 使用AssetsManager访问这些资源; -- res/value : 存放 字符串. 整数, 颜色, 数组 信息的 XML文件的目录, 这些XML文件资源的根元素是resource; -- res/xml : 原生的XML文件, 可以使用 Resource.getXML()方法进行访问; res/value目录XML文件子标签解析 : -- string标签 : 代表一个字符串; -- integer标签 : 代表一个整数值标签; -- bool标签 : 代表一个boolean值; -- color标签 : 代表一个颜色值; -- array标签 : 代表数组; -- string-array标签 : 代表字符串数组; -- int-array标签 : 代表int数组; -- style标签 : 代表样式; -- dimen标签 : 代表一个尺寸; 3、分类资源文件 : 如果将所有的资源放到一个XML文件中, 会增加维护难度, 这里将不通类型的资源放到不同的XML文件下; -- arrays.xml : 存放数组资源; -- colors.xml : 存放颜色资源; -- dimens.xml : 存放尺寸值资源; -- strings.xml : 存放字符串资源; -- styles.xml : 存放样式资源; 二、Android中资源的使用   (1) Java代码访问清单资源 在Java代码中通过R类获取资源语法 : -- pakegeName : R类所在的包名, 即权限定类型, R类可能来自两个包, 一个是程序本身的清单文件, 一个是Android系统存在的清单文件; -- resourceType : R类中代表的资源类型的名称, R.string 字符串资源, R.integer 代表整数资源; -- resourceName : 资源名称, 这个资源名称是对应类型子标签的 name属性的值; (2) Java代码访问原生资源 Resource类 : Android资源访问控制类, 该类提供了大量方法获取实际资源, Resource通过 Context.getResource()方法获得; -- 获取清单资源 : resource.getString(id), 根据id获取实际资源; -- 获取原生资源 : resource.getassets(),

安卓开发之Intent(Filter)用法详解

安卓开发之Intent(Filter)用法详解

3年前 (2015-04-27) 浏览: 488 评论: 0

一、Intent是什么,作用是什么? Android的应用程序包括三大组件:Activity、Service、BroadcastReceiver,为了方便不同组件之间的交流通信,应用程序就采用了一种统一的方式启动组件及传递数据,即使用Intent。 Intent封装了Android应用程序需要启动某个组件的"意图",Intent类的对象是组件间的通信载体,一个Intent对象就是一组信息,其包含接收Intent组件所关心的信息(如action 和 Data)和Android 系统关心的信息(如Category等)。也就是说,发送"意图"的组件通过Intent对象所包含的内容,来启动指定的(即Component属性)或通过筛选(即Action&Category属性)的某(些)组件,然后实施相应的动作(即Action属性)并传递相应的数据(即Data属性)以便完成相应的动作。 二、Intent的Component属性 Component需要指定包名和类名唯一确定一个组件类,代码如下:   展示结果的代码:   运行截图: 点击第一个按钮显示运行结果:   三、Intent的Action、category属性 使用Action和Category需要在程序清单文件androidMinifest.xml文件中进行配置,代码如下:   使用Action、category启动这个Activity的代码为:   展示结果的代码:   截图: 四、Intent的Data、Type属性 Data属性通常用于向Action属性提供操作的数据,Data属性接受一个Uri对象,一个Uri对象通过如下形式的字符串来表示: content://cn.wangbaiyuan.contacts/contacts/1 tel:1880000000 冒号前面指定了数据的类型,后面的是数据部分。 Type属性则用于明确指定Data属性的数据类型或MIME类型,但是通常来说,当Intent不指定Data属性时Type属性才会起作用,否则Android系统将会根据Data属性值来分析数据的类型,所以无需指定Type属性。 一旦为Intent同时指定了Action和Data属性,那么Android将可根据指定的数据类型来启动特定的应用程序,并对指定的数据执行相应的操作。 在我的代码文件中我分别测试了5个用Activity和Data组合的情况,为五个按钮分别设置一下监听器:   运行截图:   五、Intent创建tab页面: 代码:   运行结果:   代码下载

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册