Android
文章平均质量分 73
阳光岛主
阳光、快乐、创新
展开
-
Android 滑动效果进阶篇(六)—— 倒影效果
上篇介绍了使用Animation实现3D动画旋转翻页效果,现在介绍图片倒影实现,先看效果图本示例主要通过自定义Gallery和ImageAdapter(继承自BaseAdapter)实现1、倒影绘制ImageAdapter继承自BaseAdapter,详细实现可见 Android 滑动效果入门篇(二)—— Gallery 这里重点介绍倒影原理及实现倒影原理:倒影效果是主要由原图+间距+倒影三部分组原创 2012-04-20 22:59:14 · 13137 阅读 · 3 评论 -
Android 内存分析工具
Dalvik 虚拟机支持垃圾收集,但是这不意味着你可以不用关心内存管理。你应该格外注意移动设备的内存使用,手机和平板的内存空间是受到限制的。在这篇文章里面,我们来看看Android SDK里面的一些内存剖析工具(profiling tools)是如何帮助我们修整应用程序的内存使用。一、 内存泄露一些内存使用问题是很明显的,例如,如果在每次用户触摸屏幕的时候应用程序有内存泄露,将会有可能触发OutO原创 2011-12-01 15:39:20 · 23185 阅读 · 2 评论 -
Android Parcelable
Parcelable(SDK)Interface for classes whose instances can be written to and restored from a Parcel. Classes implementing the Parcelable interface must also have a static field called CREATOR, which is原创 2011-11-08 20:25:19 · 6373 阅读 · 0 评论 -
Android 滑动效果高级篇(八)—— 自定义控件
自定义控件,较常用View、ViewGroup、Scroller三个类,其继承关系如下:本示例自定义控件,实现一个Gallery效果,并添加了一个显示View个数和位置的bar条,效果图:自定义控件,包含通过继承实现的自定义控件和自定义控件属性两部分,即控件和属性1、自定义属性自定义属性,分为定义属性、解析属性、设置属性三部分,具体步骤:首先,在res/valus/attrs.xml属性资源文件中原创 2012-04-20 23:01:21 · 18660 阅读 · 13 评论 -
Android 智能指针原理
Android系统的运行时库层代码是用C++来编写的,用C++来写代码最容易出错的地方就是指针了,一旦使用不当,轻则造成内存泄漏,重则造成系统崩溃。不过系统为我们提供了智能指针,避免出现上述问题,本文将系统地分析Android系统智能指针(轻量级指针、强指针和弱指针)的实现原理。一、内存泄露与智能指针 在使用C++来编写代码的过程中,指针使用不当造成内存泄漏一般就是因为new了一个对转载 2012-05-05 23:17:31 · 8915 阅读 · 0 评论 -
HTC G14解锁S-OFF、刷机、获取ROOT权限
前期准备工作:1、安装连接电脑的ADB 驱动,这是连接电脑必要的驱动(如果已安装过或自动安装了,可忽略!)下载: HTCDriver3.0.0.008_x32.rar (1.7 MB) 或这个驱动:http://bbs.anshouji.com/thread-53371-1-1.html2、获取手机的S/N码:在手机上操作: 设置--关于手机--设备信息(设备序列号,即是我们要找的S/N码,先记下原创 2012-01-15 21:10:37 · 27065 阅读 · 2 评论 -
Android 滑动效果基础篇(四)—— Gallery + GridView
Android系统自带一个GridView和Gallery两个控件,GridView网格显示,Gallery单个浏览,两者结合起来可以真正实现Gallery浏览图片效果。本示例通过GridView和Gallery两个控件,模仿实现一个完整的仿Gallery图像集的图片浏览效果。效果图如下:1、GridView首先,自定义一个GridImageAdapter图片适配器,用于填充GridView控件的原创 2012-04-16 23:05:55 · 16458 阅读 · 4 评论 -
Android 滑动效果进阶篇(五)—— 3D旋转
前面介绍了利用Android自带的控件,进行滑动翻页制作效果,现在我们通过代码实现一些滑动翻页的动画效果。Animation实现动画有两个方式:帧动画(frame-by-frame animation)和补间动画(tweened animation)本示例通过继承Animation自定义Rotate3D,实现3D翻页效果。效果图如下:1、Rotate3D(Animation)首先,自定义Anima原创 2012-04-20 22:58:21 · 12869 阅读 · 4 评论 -
Android Listener侦听的N种写法
Android中,View的Listener方法,在是否使用匿名类匿名对象时,有各种不同的写法。OnClickListener和其他Listener方法一样,都是View类的接口,重载实现后就能使用,其接口定义如下: public interface OnClickListener { /** * Called when a view has been cl原创 2012-04-23 13:29:27 · 31491 阅读 · 3 评论 -
Android 读写文件的N种写法
Android 读写文件的N种写法(待续。。。)读取raw文件// 读取raw文件 private void rawRead(){ String ret = ""; try { InputStream is = getResources().openRawResource(R.raw.my_raw); int len = is.available(); b原创 2012-05-31 23:08:03 · 8702 阅读 · 0 评论 -
Android 滑动效果高级篇(七)—— 华丽翻页效果
本示例介绍翻页效果,借鉴参考【何明桂的小窝】的博客,效果图如下:感兴趣的朋友,可以查看【参考推荐】,原博客把原理和实现,已经讲得很清楚了,在此不再重复本示例源码下载如下:源码下载参考推荐:Android 实现书籍翻页效果----原理篇Android 实现书籍翻页效果----升级篇Android 实现书籍翻页效果----完结篇Android 动画框架详解,第 1 部分(IBM)Android 动画框原创 2012-04-20 23:00:58 · 21469 阅读 · 6 评论 -
Android 滑动效果基础篇(三)—— Gallery仿图像集浏览
Android系统自带一个Gallery浏览图片的应用,通过手指拖动时能够非常流畅的显示图片,用户交互和体验都很好。本示例就是通过Gallery和自定义的View,模仿实现一个仿Gallery图像集的图片浏览效果。效果图如下:1、基本原理在 Activity 中实现 OnGestureListener 的接口 onFling() 手势事件,通过自定义的 View 绘制draw() 图片2、Acti原创 2012-04-12 21:29:21 · 19388 阅读 · 14 评论 -
Android 学习小结
Android 学习已有一年半有余,先后做过两款游戏、三款应用和搭建一台服务端,也了解过一些Android相关的源码(JDK、SDK和NDK)后来想学深入点,搞过两款开源项目(LGame 和 AChartEngine),还发布过自己的开源项目(wsi-lgame-pro 和 mobilesurvey),现在总结一下自己的经验和心得Android 入门一开始学Android,主要看了三本书《Andr原创 2012-06-13 23:11:24 · 10042 阅读 · 11 评论 -
Android 创建与解析XML(四)—— Pull方式
1、Pull概述Android系统中和创建XML相关的包为org.xmlpull.v1,在这个包中不仅提供了用于创建XML的 XmlSerializer,还提供了用来解析XML的Pull方式解析器 XmlPullParserXmlSerializer没有像XmlPullParser那样提取XML事件,而是把它们推出到数据流OutputStream或Writer中。XmlSerializer提供了很原创 2012-04-28 23:12:48 · 13154 阅读 · 1 评论 -
Android 平铺背景图片
Android的图片平铺效果,主要有三种方法:1)系统API; 2)XML配置; 3)自定义绘制方法1: 系统api实现Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.pic);//bitmap = Bitmap.createBitmap(100, 20, Config.ARGB_8888);Bit原创 2012-07-30 17:59:54 · 9490 阅读 · 0 评论 -
Android Market 链接的生成与分享
通过Java包名直接定位到你的Apphttp://market.android.com/details?id=或者market://details?id=范例:market://details?id=com.skyd.luckywheel这将直接在菜市场中显示你的App详细介绍页。 通过Java包名搜索Apphttp://market.android.com/search?q=pname:或者ma原创 2012-08-21 13:19:24 · 14061 阅读 · 0 评论 -
Android 手机开机密码破解锁定
Android 手机使用Pattern图案加密后,如果忘记密码或多次解锁失败后,会被google自动锁定,无法再次进入开机首页。本文就是针对这种情况,研究探索了一种破解锁定的方法,具体锁定环境和操作步骤如下。一、手机被锁定Android 手机使用Pattern图案加密后,如果忘记密码、解锁多次失败后(5次+10次+n次错误),如下图上图解锁多次失败后,google 账户会自动锁定手机,用户无法再次原创 2012-09-01 23:55:29 · 73113 阅读 · 4 评论 -
Android 应用程序签名
Android应用程序签名相关的理论知识包括:什么是签名、为什么要给应用程序签名、如何给应用程序签名等。1、什么是签名? 如果这个问题不是放在Android开发中来问,如果是放在一个普通的版块,我想大家都知道签名的含义。可往往就是将一些生活中常用的术语放在计算机这种专业领域,大家就开始迷惑了。计算机所做的事情,或者说编程语言所做的事情,不正是在尽可能地模拟现实吗?所以,计算机中所说的签名原创 2012-09-04 13:39:44 · 8025 阅读 · 4 评论 -
Android 获取版本号
As described in the android documentation, the SDK level (integer) the phone is running is available in:android.os.Build.VERSION.SDK_INT;The enum corresponding to this int is in the android.os.Build.V原创 2012-09-27 11:31:06 · 8131 阅读 · 1 评论 -
Android context(Application/Activity)与内存泄露
android中的context可以做很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是 application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。 比如一个activity的onCreate: public void onCreate(Bundle savedI原创 2011-10-20 19:04:18 · 12921 阅读 · 2 评论 -
Android Context 详解
Android中context可以作很多操作,但是最主要的功能是加载和访问资源。在android中有两种context,一种是application context,一种是activity context,通常我们在各种类和方法间传递的是activity context。继承关系:区别联系:public class MyActivity extends Activity { public原创 2012-09-28 11:27:55 · 11141 阅读 · 14 评论 -
Android 源码编译make的错误处理
Android源码下载:官方下载 或参考android源码下载方式Android编译版本: PLATFORM_VERSION=4.0.1(最新Android 4.0.1)OS 操作系统平台: Linux yanggang 2.6.35-30-generic #61-Ubuntu SMP Tue Oct 11 15:29:15 UTC 2011 i686 GNU/Linux(Ubuntu10.10原创 2011-11-16 15:59:45 · 27943 阅读 · 8 评论 -
Android 进程和线程模型
Android进程模型在安装Android应用程序的时候,Android会为每个程序分配一个Linux用户ID,并设置相应的权限,这样其它应用程序就不能访问此应用程序所拥有的数据和资源了。在 Linux 中,一个用户ID 识别一个给定用户;在 Android 上,一个用户ID 识别一个应用程序。应用程序在安装时被分配用户 ID,应用程序在设备上的存续期间内,用户ID 保持不变。默认情况下,每个ap原创 2012-09-28 10:02:27 · 12897 阅读 · 3 评论 -
Android AsyncTask与handler
本文主要讲解下AsyncTask的使用以及Handler的应用首先,我们得明确下一个概念,什么是UI线程。顾名思义,ui线程就是管理着用户界面的那个线程!android的ui线程操作并不是安全的,并且和用户直接进行界面交互的操作都必须在ui线程中进行才可以。这种模式叫做单线程模式。我们在单线程模式下编程一定要注意:不要阻塞ui线程、确保只在ui线程中访问ui组件当我们要执行一个复杂耗时的算法并且最原创 2011-08-23 20:40:47 · 18738 阅读 · 3 评论 -
Android 布局属性详解
RelativeLayout第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_centerVertical 垂直居中 android:layout_centerInparent 相对于父元素完全居中 android:layout_alignParentBottom原创 2012-10-29 21:39:40 · 9322 阅读 · 2 评论 -
Android AsyncTask异步处理
在开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。在单线程模型中始终要记住两条法则: 1. 不要阻塞UI线程 2. 确保只在UI线程中访问Android UI工具包 当一个程序第一次启动时,Android会同时启动一个对应的主线程(Main Thread),主线程主要负责处理与UI相关的事件,如:用户的按键事件,原创 2012-10-23 19:56:04 · 21567 阅读 · 14 评论 -
Android Activity 常用功能设置(全屏、横竖屏等)
Activity全屏设置方式1:AndroidManifest.xmlandroid:theme="@android:style/Theme.NoTitleBar.Fullscreen" />方式2:代码实现requestWindowFeature(Window.FEATURE_NO_TITLE); // 隐藏标题栏getWindow().setFlags(WindowManager.Layo原创 2011-08-05 09:36:33 · 27944 阅读 · 3 评论 -
Android NDK Hello
Android应用程序访问android的根文件系统中的文件时,由于应用程序的权限限制,无法访问这些文件,怎么办?这时就要用到NDK编程了,既用C/C++代码实现访问系统文件,并将其生成本地库,供android中的java代码调用,这样就可以在java代码中通过调用C/C++编写的库的接口来实现对系统文件的访问。为何要用到NDK?概括来说主要分为以下几种情况:1. 代码的保护,由于apk的java原创 2012-11-04 00:22:29 · 9569 阅读 · 3 评论 -
JNI和NDK的区别
NDK(Native Development Kit)“原生”也就是二进制android常用的开发方式是java封装的库,而这些库的底层实现是由C/C++实现,如媒体,图形库等java调用这样实现就需要用JNI(Java Native Interface)平时用的也就是google给我们封装的好的库,即底层实现用的不是Java,但都有统一的Java接口NDK的作用是“我们自己写本地代码”(C/C+原创 2011-09-28 10:17:18 · 21052 阅读 · 2 评论 -
Android Hierarchy Viewer
Android的SDK工具包中,有很多十分有用的工具,可以帮助程序员开发和测试Android应用程序,大大提高其工作效率。其中的一款叫Hierachy Viewer的可视化调试工具,可以很方便地帮助开发者分析,设计,调试和调整UI界面,提高开发效率。本文将以一个实际例子讲解如何使用该款工具运用在Android的开发过程中。1 设计界面在我们的这个例子中,有三个不同的界面,以方便我们演示使用Hier原创 2012-11-07 21:27:14 · 10334 阅读 · 6 评论 -
Android Manifest.xml 结构详解
关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities,services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services,和Intent Recei原创 2012-11-01 20:31:44 · 27411 阅读 · 9 评论 -
Android 监听安装和卸载
Android 应用程序的安装和卸载事件,是由系统进行监听并全局广播的,支持1.5(android 3)以上因此,如果想要监听获取应用的安装和卸载事件,只需要自定义一个BroadcastReceiver,来对系统广播进行监听和处理BroadcastReceiver 是系统全局广播监听类, 其主要方法是onReceive(),自定义的广播类继承于它并实现自己的onReceive()处理逻辑Broad原创 2012-11-29 19:05:17 · 54121 阅读 · 19 评论 -
Android 开机自启动应用
Android启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,它的字符串常量表示为 “android.intent.action.BOOT_COMPLETED”开机自启动程序,只需要“捕捉”到这个消息再启动你的程序即可,我们要做的是接收这个消息,并实现一个BroadcastReceiver。1 xml 配置在AndroidManifest.xml中Application节原创 2012-11-29 20:27:44 · 58046 阅读 · 10 评论 -
Android Intent Action 大全
1.Intent的用法:(1)Action跳转1、 使用Action跳转,当程序AndroidManifest.xml中某一个 Activity的IntentFilter定义了包含Action,如果恰好与目标Action匹配,且其IntentFilter中没有定义其它的Type或Category过滤条件,那么就正好匹配了。如果手机中有两个以上的Action程序匹配,那么就会弹出一个对话可框来提示说原创 2012-12-01 00:36:09 · 62879 阅读 · 14 评论 -
Android 检测网络连接状态
Android连接网络的时候,并不是每次都能连接到网络,因此在程序启动中需要对网络的状态进行判断,如果没有网络则提醒用户进行设置。首先,要判断网络状态,需要有相应的权限,下面为权限代码(AndroidManifest.xml): 然后,检测网络状态是否可用 /** * 对网络连接状态进行判断 * @return true, 可用; false, 不可用 */ private原创 2012-08-22 20:19:25 · 30012 阅读 · 4 评论 -
libgdx 环境搭建
一、 开发包下载1) libgdx 开发包下载: google code(最新 libgdx-0.9.7.zip 2012.11.12)2) libgdx 主干源码下载: github tags二、 环境搭建 1) 添加开发jar包libgdx的android开发包主要有 gdx.jar, gdx-backend-android.jar,以及 armeabi 和 armeabi-v7a (区原创 2012-12-13 23:40:42 · 17728 阅读 · 0 评论 -
libgdx 概述
libgdx 是一个跨平台的2D/3D的游戏开发框架,由Java/C/C++语言编写而成,基于 Apache License 2.0 协议,对商业使用和非商业使用均免费,代码托管于github优点1、 兼容性强libgdx兼容大多数平台,采用标准JavaSE实现,能运行在Mac、Linux、Windows等系统,与Android平台(Android1.5以上即可使用,Android2.1以上可满功原创 2012-12-05 21:38:52 · 17066 阅读 · 2 评论 -
libgdx 图形绘制
纹理(texture)一个图片从原始格式解码并上传到GPU就被称为纹理。OpenGL要求纹理的高度和宽度都必须是2的n次方大小,只有满足这个条件纹理图片才是有效的。 一旦获取了像素值,我们就可以将这些数据传给OpenGL,让OpenGL生成一个纹理贴图为了绘制texture,常常使用几何来描述,通过几何对应的顶点来描述纹理。比如要描述一个矩形,可以通过矩形的四个顶点来描述。要绘图时,首先要绑定纹理原创 2012-12-15 00:03:09 · 8974 阅读 · 0 评论 -
Android Service 服务(三)—— bindService与remoteService
一、bindService简介bindService是绑定Service服务,执行service服务中的逻辑流程。service通过Context.startService()方法开始,通过Context.stopService()方法停止;也可以通过Service.stopSelf()方法或者Service.stopSelfResult()方法来停止自己。只要调用一次stopService()方原创 2012-03-18 14:29:17 · 27057 阅读 · 1 评论 -
Google Play In-app Billing
0, 概述应用程序内部付费机制(Google Play In-app Billing, 以下简称应用内支付)是Google Play的一项服务,这种服务为应用内购买提供支付流程。要使用这项服务,你的应用会对一个特定的应用内产品发送一个结账请求。然后该服务会处理这笔交易的所有细节,包括请求和确认支付形式和处理金融方面的交易。支付流程完成后,该服务会发送购买细节到你的App,比如订单号、订单时间、价格原创 2012-12-19 00:08:27 · 29686 阅读 · 15 评论