android
evilkeeper
学习和坚持,坚持学习,终会与众不同!
展开
-
android的轻量级数据保存类SharedPreferences
SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下。getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。例:SharedPreferences sharedPreferences = getS原创 2013-01-07 14:38:23 · 905 阅读 · 0 评论 -
android与WEB服务器交互时,如何保证在同一个会话Session中通信
最近在开发项目的过程中,遇到android与web服务器要在同一session下通信的问题。在解决问题前先回顾下Session与Cookie:Cookie和Session都为了用来保存状态信息,都是保存客户端状态的机制,它们都是为了解决HTTP无状态的问题而所做的努力。Session可以用Cookie来实现,也可以用URL回写的机制来实现。Cooki转载 2013-10-18 17:05:38 · 574 阅读 · 0 评论 -
Android apk签名的两种方法
为了保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序,我们需要对我们发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)。在这里介绍两种签名的方法如下:1、在命令行对apk签名:创建key,需要用到keytool.exe (位于C:\Program Fi转载 2013-10-18 17:21:56 · 872 阅读 · 0 评论 -
安卓图片异步加载开源库:Universal Image Loader
Universal Image Loader 是一个开源的UI组件程序,该项目的目的是提供一个可重复使用的仪器为异步图像加载,缓存和显示。所以,如果你的程序里需要这个功能的话,那么不妨试试它。他本来是基于Fedor Vlasov's project 项目的,Universal Image Loader在此基础上做了很多修改。下面是Universal Im转载 2013-10-18 17:30:02 · 1324 阅读 · 0 评论 -
Android自定义控件StaggeredGridView-瀑布流效果的GridView
我们知道谷歌keep在显示记事的时候可以多列显示,但是跟国内很多应用不同,它的记事之间高度是随机的,效果如下:因为之前没有用过GridView,但是知道GridView大概是怎么回事,只不过是listview的另一种形式而已,直觉告诉我谷歌这个界面是GridView做的。于是我就尝试着用GridView来模仿keep的界面。结果发现GridView根本做不出来,怎么弄每行都只能是一转载 2013-10-18 17:33:53 · 1718 阅读 · 0 评论 -
Android单线程模型相关概念详解
我们今天将会在这篇文章中为大家详细介绍有关Android单线程模型的相关内容。希望初学者们可以通过本文介绍的内容对这一概念有一个充分的认识,并从中对这一系统有一个深刻的认识。当第一次启动一个Android程序时,Android会自动创建一个称为“main”主线程的线程。这个主线程(也称为UI线程)很重要,因为它负责把事件分派到相应的控件,其中就包括屏幕绘图事件,它同样是用户与Andriod转载 2013-10-18 17:38:03 · 486 阅读 · 0 评论 -
开发android客户端需要了解的知识--JSON数据解析
什么是JSON:JSON即JavaScript Object Natation, 它是一种轻量级的数据交换格式, 与XML一样, 是广泛被采用的客户端和服务端交互的解决方案.JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, key-value对之间使用逗号分隔.转载 2013-10-18 17:57:18 · 690 阅读 · 0 评论 -
安卓客户端开发:XML和JSON两种数据交换格式的比较
最近想给网站做客户端,因此在考虑到底是用xml还是Json的问题,刚好在网上读到了这篇文章。目前,在web开发领域,主要的数据交换格式有XML和JSON,对于XML相信每一个web developer都不会感到陌生;相比之下,JSON可能对于一些新步入开发领域的新手会感到有些陌生,也可能你之前已经听说过,但对于XML和 JSON的不同之处可能会不怎么了解。对于在 Ajax转载 2013-10-18 17:59:13 · 640 阅读 · 0 评论 -
androidpn配置
首先是 androidpn的下载链接http://sourceforge.net/projects/androidpn/下载2个文件: androidpn-server-0.5.0-bin.zip 和 androidpn-client-0.5.0.zip 1.启动服务器 androidpn-server-0.5.0\bin\run.bat由于服务器端是使用Jetty做为we转载 2013-11-26 08:58:09 · 753 阅读 · 0 评论 -
我的技术转型之路——从C++到Android (一)
作为一个程序员,学习是工作必不可少的一个环节,从学习新的API、类库、IDE的使用到学习一种全新的开发语言,我们跟随着时代的脚步不断挑战和改变着自己。而所谓技术转型到底多大幅度才算,其实也很难说得清,我自工作开始先是从事了两年多的C++开发,而后因工作需要转而学习Android应用程序开发至今两年有余,这两者之间所使用的工具软件和语言都完全不同,所以这里姑且就算我是技术转型了吧,我只是想说说我这几原创 2015-01-21 00:27:26 · 2139 阅读 · 0 评论 -
Eclipse下的Android JNI 开发
1 创建Android工程首先建立一个名为AndroidJniTest的Android工程,包名默认为com.example.androidjnitest,src目录下自动创建MainActivity.java。 2 设计JNI接口创建新的文件包com.example.jni,并在改包下新建一个TestJNI.java的类。 打开TestJNI.java,我们将在这个原创 2015-02-11 11:30:53 · 873 阅读 · 2 评论 -
android 数字签名详解
在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应用程序才能取得该权限。Android使用Java的数字证书相关的机制来给apk加盖数字证书,要理解android的数字转载 2013-10-18 17:25:18 · 775 阅读 · 0 评论 -
7 (phonegap源码分析) 平台相关模块和初始化(platform)
之前分析了与平台无关的common模块,这节来分析下与平台相关的platform模块和phonegap的初始化。define("myphonegap/platform", function(require, exports, module) { module.exports = { id: "android", initialize:function() {原创 2013-08-14 15:41:24 · 753 阅读 · 0 评论 -
9 (phonegap源码分析)代码附录
index.html 源码 PHONEGAP SIMULATE !MainActivity.java 源码package com.example.mobilephonebills;import com.example.telephonefare.R;import com.example.telephonefare.R.layout;import原创 2013-08-14 16:49:05 · 956 阅读 · 0 评论 -
android的sqlite数据库操作
Android对SQLITE数据库的操作的类包含在android.database.sqlite这个包里面,如下所示,列出了这个包包含的接口和类。最常用的是SQLOpenHelper用来打开、创建一个数据库;SQLiteDatabase提供一系列方法管理数据库,包括对数据的查询、插入、修改、表的添加、删除等等。android.database.sqlite接口SQLiteCurso原创 2013-01-07 15:49:54 · 460 阅读 · 0 评论 -
android开发中的DOM和SAX使用的工厂模式分析
第一节先简要介绍XML文件解析的两种方案,因为关于XML文件的解析应该是我们写java代码时都会遇到的。第二节是对工厂模式的介绍,工厂模式是设计模式的最常见的一种,这也是为了理解下面的代码分析部分做铺垫。第三节是根据java代码分析其中的工厂设计模式,并模拟其实现。 本文的重点集中在对工厂模式的分析,之前的DOM和SAX的案例转自网络。1 java实现XML解析的两种模式SAX原创 2012-12-28 10:44:31 · 411 阅读 · 0 评论 -
1 android高级编程——程序启动动画的实现
启动动画的原理:程序启动后加载一个只有一个图片的activity页面,该页面占满全屏。一段时间后,关闭当前activity进入主页面或登录页面的activity。public class SplashActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { supe原创 2013-08-19 10:24:55 · 877 阅读 · 0 评论 -
2 (phonegap源码分析)整体结构
打开cordova-android-2.4.0.js这个文件,会看到6000多行的代码,随着版本的更新,相信代码量会更多。但是等你基本看懂了整个源码,理清楚了phonegap的结构,就发现其实软件本身的结构比它的源码清晰得太多了。其它的语言有人能把一个很复杂的框架的代码写得不需要文档也能轻易看懂,JS的话估计很难。下面言归正传,开始分析源码。;(function(){ var r原创 2013-08-09 17:38:09 · 680 阅读 · 0 评论 -
1(phonegap源码分析)说明
版本说明,参考cordova-android-2.4.0对phonegap框架进行分析,主要分析的是js文件部分,同时模拟了本地和原生语言的通信问题。 工具: Notepad++ 用于文本编辑, chorme 浏览器在PC上调试js代码、 eclipse+adt 编译到android平台测试。心得:本人对JS语言也不是很熟悉,因此在文中会穿插一些对js语法和编程技巧的讲解,和对其它类C编原创 2013-08-09 17:28:45 · 590 阅读 · 0 评论 -
8 (phonegap源码分析)JS与本地代码交互(exec )
这里采用的是较早版本的phonegap框架中exec模块的实现,代码比较直观易懂,后来的版本为了提升代码的健壮性,增加了很多选择性代码。为了测试方便,直接使用简单版本的exec模块。更高版本的phonegap库也是在这个基础之上扩展的,可对比学习。define("myphonegap/exec", function(require, exports, module) { /**原创 2013-08-14 15:56:47 · 855 阅读 · 0 评论 -
3(phonegap源码分析)模块定义与请求(define require)
define和require是贯彻整个phonegap代码的核心函数,它们通过定义的一个匿名函数的即时调用来赋值的。事实上下面的匿名函数中省略了部分代码,当然省略的代码并不影响框架的主题功能,而是新版本中对原有功能的完善。var require,//myphonegap内部的工具函数,用来导入相关的模块 define;//在myphonegap注册相关的模块 //通过一原创 2013-08-09 19:11:36 · 734 阅读 · 0 评论 -
4(phonegap源码分析)通道模块的事件订阅机制(channel)
channel模块式所有模块中比较核心的一个模块,它定义一个通道,在这个通道上有一个事件,你可以订阅这个事件,当这个事件被激发的时候,所有注册在这个通道上的订阅者都能收到。这里的订阅者其实就是一个函数,当事件激发,函数就会被调用。 下面是channel的工厂函数的主体代码: function(require, exports, module) { var utils =原创 2013-08-09 21:09:10 · 791 阅读 · 0 评论 -
5 (phonegap源码分析)通用配置/构建模块(common builder)
phonegap中模块数目有几十个,并且按模块功能分成了不同的层次,如果完全手动请求构建会出现大量的类似window.myphonegap=require(“myphonegap”)的语句。 phonegap的设计者采用了配置构建的方式,即用一个common对象对所有通用的模块进行配置,用一个platform对象对所有与平台相关的模块进行配置,builder对象提供的函数则根据这原创 2013-08-12 17:14:34 · 700 阅读 · 0 评论 -
6 (phonegap源码分析)主模块的实现 (myphonegap)
主模块是与本地代码交互的接口,它的主要功能有两个,一个是对BOM提供的document和window的事件侦听函数进行重定义;另一个是提供了插件回调机制接口函数。define("myphonegap",function(require, exports, module){ var channel = require("myphonegap/channel"); //文档对象模型加载监原创 2013-08-14 15:35:04 · 916 阅读 · 0 评论 -
AndroidStudio快捷键
Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导入的类和包Alt+Insert 生成代码(如get,set方法,构造函数等)Ctrl+E或者Alt+Shift+C 最近更改的代码Ctrl+R 替换文本Ctrl+F 查找文本Ctrl+Shift+Space 自动转载 2015-06-24 09:29:53 · 489 阅读 · 0 评论