2017 年 05 月的存档

MD5工具类(java实现版)

MD5工具类(java实现版) 介绍 MD5(Message Digest Algorithm)加密算法是不对称的加密算法,因为其实不可逆的,实际上其不能算作加密算法, 因为其不可解密。其实现原理是基于Hash算法(简称散列函数)。 MD5算法具有以下特点 1、压缩性:任意长度的数据,算出的MD5值长度都是固定的。 2、容易计算:从原数据计算出MD5值很容易(算法简单) 3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。 4、强抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。 5、不 ......

Andriod获取手机App信息(区分系统App,获取签名)

  主界面获取列表,其中需要判断App是否为用户App,代码如下 /** * 判断是否为用户APP * * @param info * @return */ public static boolean isUesrApp(ApplicationInfo info) { if ((info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) != 0) { // 代表的是系统的应用,但是被用户升级了. 用户应用 return true; } else if ((info.flags & ApplicationInfo.FLAG_SYSTEM) == 0) { // 代表的用户的应用 return true; } return false; } 点击详情之后会获 ......

利用Java针对MySql封装的jdbc框架类 JdbcUtils 完整实现(包含增删改查、JavaBean反射原理,附源码)

本文转自大神的CSDN:http://blog.csdn.net/yanzi1225627/article/details/26950615 最近看老罗的视频,跟着完成了利用Java操作MySQL数据库的一个框架类JdbcUtils.java,完成对数据库的增删改查。其中查询这块,包括普通的查询和利用反射完成的查询,主要包括以下几个函数接口: 1、public Connection getConnection()   获得数据库的连接 2、public boolean updateByPreparedStatement(String sql, List<Object>params)throws SQLException  更新数据库,包括增加记录、删除记录、改动某个记录三个功能。 3、public Map<Str ......

Android Webview实现文件下载功能

最开始的时候走入了一个误区,以为webview中下载文件,需要主动拦截shouldOverrideUrlLoading函数中下来类文件,然后自己去实现文件的下载,当时还在考虑要怎么去获取文件类型(通过HttpURLConnection获取http返回头中的Content-disposition来获取文件),哪些文件是可以下载,哪些文件是html直接展示的,这种思路完全是错误的,文件种类太多,没法判断哪些是用户主动需要下载的。陷入思路的误区,后来发现webview有一个downloadListense函数,简单阅读才发现,之前的哪些思路在webview中个已经被封装好了,只需要简单的处理文件下载 ......

HTTP头部详解及使用Java套接字处理HTTP请求

进行Web开发关键是要了解超文本传输协议(HTTP),该协议用来传输网页、图像以及因特网上在浏览器与服务器间传输的其他类型文件。只要你在浏览器上输入一个URL,最前面的http://就表示使用HTTP来访问指定位置的信息。(大部分浏览器还支持其他一些不同的协议,其中FTP就是一个典型例子。) 本文从HTTP协议的结构上初步探讨HTTP协议的工作原理和请求响应格式,并最后通过一个使用Java编写的小HTTP服务器验证了如何处理和响应HTTP请求 HTTP由两部分组成:请求和响应。当你在Web浏览器中输入一个URL时,浏览器将根据你的要求创建并发送 ......

enum与int、String之间的转换

enum与int、String之间的转换 enum<->int (1) enum -> int: int i = enumType.value.ordinal(); (2) int -> enum: enumType b= enumType.values()[i]; enum<->String (1)  enum -> String: enumType.name() (2) String -> enum: enumType.valueOf(name); ————————————————————————– http://stackoverflow.com/questions/604424/java-enum-con ......

Android 判断文件类型MIME

MIME:全称Multipurpose Internet Mail Extensions,多功能Internet 邮件扩充服务。它是一种多用途网际邮件扩充协议,在1992年最早应用于电子邮件系统,但后来也应用到浏览器。MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。多用于指定一些客户端自定义的文件名,以及一些媒体文件打开方式。 在Android中通过文件的MIME类型来判断有哪些应用程序可以处理这些文件,并使用其中的某一个应用程序(如果有多个可选的应用程序,则用户必须指定一 ......

android如何实现开机自动启动Service或app

第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app。 import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.util.Log; public class BootBroadcastReceiver extends BroadcastReceiver { //重写onReceive方法 @Override public void onReceive(Context context, Intent intent) { //后边的XXX.c ......

Android业务组件化之URL Scheme使用

前言: 最近公司业务发展迅速,单一的项目工程不再适合公司发展需要,所以开始推进公司APP业务组件化,很荣幸自己能够牵头做这件事,经过研究实现组件化的通信方案通过URL Scheme,所以想着现在还是在预研阶段,很有必要先了解一下URL Scheme,看看是如何使用的?其实在之前做Hybrid混合编程的时候就接触过URL Scheme,总来的来说还不算陌生,今天就来回顾总结一下。业务组件化相关博客地址(Android业务组件化之现状分析与探讨) 业务组件化相关文章地址: Android业务组件化之现状分析与探讨 Android业务组件化之URL Scheme使用 ......

Android 通过网页打开自己的APP(scheme)

一:Android 通过网页打开自己的APP(scheme) 通过用手机的浏览器(内置,第三方都可)访问一个网页,实现点击一个链接启动自己的应用,并传递数据。 首先在Mainifest文件里面对要启动的Activity添加一个过滤器。 <activity android:name="com.example.helloworld.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="a ......

Android 打开本地第三方应用,以及第三方App列表

获取第三方App包名和Main Activity才能启动第三方的App,获取的方法是,先安装需要获取的App,然后写一个demo获取所有App的packagename和main activity,函数实现如下: private List<ResolveInfo> getAppInfo(){ Intent mainIntent = new Intent(Intent.ACTION_MAIN, null); mainIntent.addCategory(Intent.CATEGORY_LAUNCHER); PackageManager mPackageManager = this.getPackageManager(); List<ResolveInfo> mAllApps = mPackageManager.queryIntentActivities(mainIntent, 0); //按包名 ......

JS判断手机浏览器

判断原理: JavaScript是前端开发的主要语言,我们可以通过 编写JavaScript程序来判断浏览器的类型及版本。JavaScript判断浏览器类型一般有两种办法,一种是根据各种浏览器独有的属性来分辨,另 一种是通过分析浏览器的userAgent属性来判断的。在许多情况下,值判断出浏览器类型之后,还需判断浏览器版本才能处理兼容性问题,而判断浏览器的 版本一般只能通过分析浏览器的userAgent才能知道。   浏览器类型 ⑴浏览器特有属性 ⑵根据userAgent 浏览器版本 ⑴根据userAgent   对于手机浏览器判断 1.如何判断是否为移动终端 利 ......

解决LinearLayout中控件不能居右对齐

解决LinearLayout中控件不能居右对齐 在LinearLayout布局时使用右对齐(android:layout_gravity=”right”)控件对齐方式不生效,需要设置  android:layout_weight=”1″  才能右对齐控件,原因在于后者把位置平分了。 <LinearLayout android:gravity="right" android:layout_margin="2dip" android:orientation="horizontal" android:layout_gravity="center_vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" > ......

Android常用系统广播

//关闭或打开飞行模式时的广播 Intent.ACTION_AIRPLANE_M;   //充电状态,或者电池的电量发生变化;//电池的充电状态、电荷级别改变,不能通过组建声; Intent.ACTION_BATTERY_CH;   //表示电池电量低 Intent.ACTION_BATTERY_LO;   //表示电池电量充足 Intent.ACTION_BATTERY_OK;   //关闭或打开飞行模式时的广播 Intent.ACTION_AIRPLANE_MODE_CHANGED;   //充电状态,或者电池的电量发生变化//电池的充电状态、电荷级别改变,不能通过组建声明接收这个广播,只有通过Context.registerReceiver()注册 Intent.ACTION_ ......

Android代码资源的国际化

internationalization (国际化)简称 i18n,因为在i和n之间还有18个字符,localization(本地化 ),简称L10n。 一般用语言_地区的形式表示一种语言,如  zh_CN, zh_TW.   各国语言缩写  http://www.loc.gov/standards/iso639-2/php/code_list.php 国家和地区简写 http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html 国家_地区语言速查表:http://www.cnblogs.com/Mien/archive/2008/08/22/1273950.html   常见的有: zh_cn: 简体中文 zh_hk: 繁体中文(中国香港) zh_tw: 繁体中文 ......

android实现多语言支持

参考: 1.https://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources 2.http://www.loc.gov/standards/iso639-2/php/code_list.php 我们知道,建好一个android 的项目后,默认的res下面 有layout、values、drawable等目录。这些都是程序默认的资源文件目录,如果要实现多语言版本的话,我们就要添加要实现语言的对应的资源文件。步骤如下: 1)创建本地文件夹和字符串文件 为了支持更多语言,在res/中创建其他的values扩展的文件夹,并在文件夹名后加上一个横线和国家的ISO码。例如,v ......

iOS中Info.plist文件的常见配置

在创建一个新的Xcode工程后,会在Supporting Files文件夹下自动生成一个工程名-Info.plist的文件,这个是对工程做一些运行期配置的文件(很重要,必须有该文件)。如果使用文本编辑器打开这个文件,会发现这是一个XML格式的文本文件,使用Xcode的Open As->Source Code或者Property List可以进行编辑,本文会重点介绍一些在iOS开发中常见的的Info.plist的配置项。 Info.plist配置项说明 1、设置启动图标(CFBundleIcons) CFBundleIcons CFBundlePrimaryIcon CFBundleIconFiles Icon ......

iOS App icon、启动页、图标规范

以下内容都是我在做App时通过自己的经验和精品的分析得来的,希望会帮助到你。但是有时个别情况也要个别分析,要活学活用。 一. App Icon 在设计iOS App Icon时,设计师不需要切圆角,直接矩形就可以。 下面是App Icon需要的尺寸和命名(尺寸和命名不做解释): 尺寸 命名 1.57×57 px Icon 2.114×114 px Icon@2x 3.40×40 px ......

JNI学习(三)、JNI本地方法访问Java端的属性和方法

在JNI调用中,肯定会涉及到本地方法操作Java类中数据和方法。在Java1.0中“原始的”Java到C的绑定中,程序员可以直接访问对象数据域。然而,直接方法要求虚拟机暴露他们的内部数据布局,基于这个原因,JNI要求程序员通过特殊的JNI函数来获取和设置数据以及调用java方法。 一、取得代表属性和方法的jfieldID和jmethodID 为了在C/C++中表示属性和方法,JNI在jni.h头文件中定义了jfieldID和jmethodID类型来分别代表Java端的属性和方法。我们在访问或是设置Java属性的时候,首先就要先在本地代码取得代表该Java属性的jfieldID,然后才能 ......

JNI学习(二)、JNI基本语言知识

一、本地方法的参数 如何本地方法声明为static,那么生成的头文件中的本地方法形式如下: JNIEXPORT void JNICALL Java_com_tao_test_NativeTest_sayHello  (JNIEnv * , jclass); 这两个参数的意思是什么:JNIEnv类型实际上代表了Java环境。通过这个JNIEnv*指针,就可以对Java端的代码进行操作。例如,创建Java类的对象,调用Java对象的方法,获取Java对象的属性等等。JNIEnv的指针会被JNI传入到本地方法的实现函数中来对Java端的代码进行操作。而jclass,则代表调用这个静态方法类的Class对象,即该Class类的字节码。 如何本地方 ......