Android
文章平均质量分 88
linzhuowei0775
这个作者很懒,什么都没留下…
展开
-
Android的Broadcast Receiver组件
Broadcast Receiver顾名思义是指广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的,而广播事件处理机制是系统级别的。我们可以使用Intent来启动一个程序组件,我们可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以原创 2015-08-22 12:57:20 · 490 阅读 · 0 评论 -
异步任务AsyncTask使用
Android的UI线程主要负责处理用户的按键事件、用户触屏事件及屏幕绘图事件等,因此其他操作不应该、也不能阻塞UI线程,否则UI界面将会停止响应,引发ANR(Application Not Responding)异常。为了避免UI线程失去响应的问题,Android建议将耗时操作放在新线程中完成,但新线程也可能需要动态更新UI组件:比如需要从网上获取一个网页,然后在Textview中将其源代码显示原创 2015-09-12 20:27:57 · 402 阅读 · 0 评论 -
Android NDK开发之JNI调用Java对象
通过使用合适的JNI函数,你可以创建Java对象,get、set 静态(static)和 实例(instance)的域,调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法,一个域或方法的ID是任何处理域和方法的函数的必须参数。 下面列出了用以得到静态(static)和实例(instance)的域与方法的JNI函数。每个函数接受(作为参数)域或方法的类原创 2015-11-28 09:48:10 · 569 阅读 · 0 评论 -
Activity后台运行一段时间回来crash问题的分析与解决
最近做项目的时候碰到一个棘手的问题,花了不少时间才找到原因并解决。特此记录这个被我踩过的坑,希望其他朋友遇到此问题不要调到这坑里去了。问题描述: 1、背景:我的app中某个界面的Activity是继承FragmentActivity,因为此界面包含两个Fragment。这里我称为FragmentA和FragmentB吧。在Activity中有个刷新按钮,用来刷新ViewP转载 2016-01-05 20:16:23 · 520 阅读 · 0 评论 -
Android Training - 创建自定义的Views(Lesson 1 - 创建一个View类)
设计良好的类总是相似的。它使用一个好用的接口来封装一个特定的功能,它有效的使用CPU与内存,等等。为了成为一个设计良好的类,自定义的view应该:遵守Android标准规则。提供自定义的风格属性值并能够被Android XML Layout所识别。发出可访问的事件。能够兼容Android的不同平台。Android的framework提供了许多基类与XML标签用来帮助转载 2015-12-05 11:29:23 · 344 阅读 · 0 评论 -
Android Training - 适配不同的屏幕(Lesson 2 - 适配不同屏幕密度)
Supporting Different Densities上一篇文章和大家分享了如何适配不同大小的屏幕,有个概念需要提前弄清楚,屏幕大的不一定就分辨率高,详细请看下面的内容。This lesson shows you how to support different screen densities by providing different resources and using转载 2015-12-05 12:11:08 · 334 阅读 · 0 评论 -
Android Training - 创建自定义的Views(Lesson 4 - 优化Views)
前面的课程学习到了如何创建设计良好的View,并且能够使之在手势与状态切换时得到正确的反馈。下面要介绍的是如何使得view能够执行更快。为了避免UI显得卡顿,你必须确保动画能够保持在60fps以上。Do Less, Less Frequently为了加速你的view,对于频繁调用的方法,需要尽量减少不必要的代码。先从onDraw开始,需要特别注意不应该在这里做内存分配的事情,因为它转载 2015-12-05 11:34:02 · 327 阅读 · 0 评论 -
Android自定义控件
开发自定义控件的步骤:1、了解View的工作原理 2、 编写继承自View的子类3、 为自定义View类增加属性 4、 绘制控件 5、 响应用户消息 6 、自定义回调函数 一、View结构原理Android系统的视图结构的设计也采用了组合模式,即View作为所有图形的基类,Viewgroup对View继承扩展为视图容器转载 2015-12-05 10:14:27 · 344 阅读 · 0 评论 -
Android Training - 创建自定义的Views(Lesson 2 - 自定义Drawing)
自定义view的最重要的一个部分是自定义它的外观。根据你的程序的需求,自定义绘制动作可能简单也可能很复杂。这节课会演示一些最常见的操作。Override onDraw()重绘一个自定义的view的最重要的步骤是重写onDraw()方法。onDraw()的参数是一个Canvas对象。Canvas类定义了绘制文本,线条,图像与许多其他图形的方法。你可以在onDraw方法里面使用那些方法转载 2015-12-05 11:32:08 · 367 阅读 · 0 评论 -
Android Training - 创建自定义的Views(Lesson 3 - 处理View的交互性)
绘制UI仅仅是创建自定义View的一部分。你还需要使得你的View能够以模拟现实世界的方式来进行反馈。Objects应该总是与现实情景能够保持一致。例如,图片不应该突然消失又从另外一个地方出现,因为在现实世界里面不会发生那样的事情。正确的应该是,图片从一个地方移动到另外一个地方。用户应该可以感受到UI上的微小变化,并对这些变化反馈到现实世界中。例如,当用户做fling(迅速滑动)的动作,应转载 2015-12-05 11:33:04 · 403 阅读 · 0 评论 -
JNI接口实现Java和C的交互
当面对带有本地代码的 Java 的应用程序时,程序员问的最通常的问之一,是在 Java 编程语言中的数据类型怎样对映到本地编程语言C和C++中的数据类型。实际上,大多数程序将需要传递参数给本地方法,和也从本地方法接受结果。1、基本类型的映射 在本地方法声明中参数类型有对应的在本地编程语言中的类型。 JNI定义了一套C和C++类型来对应在Java编程语言中的类型。原创 2015-11-21 17:00:04 · 6919 阅读 · 0 评论 -
Android AsyncTask完全解析,带你从源码的角度彻底理解
转载出处:http://blog.csdn.net/guolin_blog/article/details/11711405我们都知道,Android UI是线程不安全的,如果想要在子线程里进行UI操作,就需要借助Android的异步消息处理机制。之前我也写过了一篇文章从源码层面分析了Android的异步消息处理机制,感兴趣的朋友可以参考 Android Handler、Message转载 2015-09-15 23:14:44 · 304 阅读 · 0 评论 -
Android组件之间的信使Intent
Intent的中文意思是“意图,意向”,可以把它理解为不同组件之间的通信“媒介”或者“信使”。Intent可以启动一个Activity,也可以启动一个service,还可以发起一个广播(Broadcast)。Intent由以下几个部分组成:动作(Action)、数据(Data)、分类(Category)、类型(Type)、组件(Component)和扩展信息(Extra)。通过这些可以启动其他组件原创 2015-08-20 20:21:31 · 535 阅读 · 0 评论 -
Android的Service组件
Service是Android系统提供的四种组件之一,顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面。定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件中通过元素声明才能使用。Service中定义了一系列和自身生命周期相关的方法,这些方原创 2015-08-21 22:52:27 · 725 阅读 · 0 评论 -
Android的Content Provider组件
在Android中,应用程序之间是相互独立的,分别运行在各自的进程中。如果应用程序之间相互共享数据该如何实现呢?例如当我们要发送一条短信时,需要用到联系人应用程序,从中选择要发送的人。在这种情况下,Android提供了应用程序之间相互访问的统一接口,这些接口被定义在Content Provider中,其中包括添加、删除、修改和查询等操作。 ContentProvider定义在an原创 2015-08-23 16:50:53 · 449 阅读 · 0 评论 -
Android的Http网络通信
在Android中针对HTTP进行网络通信有两种:一是HttpURLConnection;二是Apache HTTP客户端。HTTP通信中使用最多的就是Get和Post,Get请求可以获取静态页面,也可以把参数放在URL字符串后面,传递给服务器。Post与Get的不同之处在于Post的参数不是放在URL字符串里面,而是放在http请求数据中。1、HttpURLConnection接口原创 2015-08-25 21:03:07 · 1120 阅读 · 0 评论 -
Activity的生命周期
在Android系统中Activity作为Activity栈(Stack)被管理,当前活动的Activity处于栈顶,之前的非活动Activity被压入下面成为非活动Activity,等待是否可能被恢复为活动状态。在Activity的生命周期中有四个重要的状态:活动 ——显示在屏幕的前面(在栈顶),有焦点并可见暂停——失去焦点,但是它仍然可见停止——失去焦点,不可见销毁——被系统或进程原创 2015-08-16 09:22:37 · 538 阅读 · 0 评论 -
Android的XML解析
在Android系统提供了3种XML解析器,即Pull解析器、DOM解析器和Sax解析器。开发时可以根据使用场景进行选择。Pull解析器用于处理简单的XML数据,DOM解析器和Sax解析器均可解析复杂的数据,其中DOM解析器是完全加载后才能解析,而SAX解析器可以随时加载随时解析。 在具体的解析器选择上,DOM解析器适合处理文件不大,嵌套的分支比较多,需要反复查询的场景;相比DO原创 2015-08-29 10:45:08 · 353 阅读 · 0 评论 -
Android的JSON数据解析
json(Javascript Object Notation)是一种轻量级的数据交换格式,相比于xml这种数据交换格式来说,因为解析xml比较的复杂,而且需要编写大段的代码,所以客户端和服务器的数据交换格式往往通过json来进行交换。尤其是对于web开发来说,json数据格式在客户端直接可以通过javascript来进行解析。一、JSON数据结构 json一共有两种数据结原创 2015-08-30 08:47:03 · 365 阅读 · 0 评论 -
深入理解Android消息处理系统——Message、Looper、Handler
熟悉Windows编程的朋友可能知道Windows程序是消息驱动的,并且有全局的消息循环系统。而Android应用程序也是消息驱动的,按道理来说也应该提供消息循环机制。实际上谷歌参考了Windows的消息循环机制,也在Android系统中实现了消息循环机制。Android通过Looper、Handler来实现消息循环机制,Android消息循环是针对线程的(每个线程都可以有自己的消息队列和消息循环原创 2015-08-30 21:25:59 · 412 阅读 · 0 评论 -
屏幕旋转与Activity的生命周期
旋转屏幕会改变设备配置,设备配置就是用来描述当前状态的一系列特征。这些特征包括:屏幕的方向、屏幕的密度、屏幕的尺寸、键盘类型、底座模式及语言等等。屏幕的旋转同时会影响着Activity的生命周期。‘ 下面通过一个实例来测试一下Activity的生命周期各个方法的调用情况,在这里我们把Activity的所有方法都覆盖,并通过日志的方式来观察运行结果。public class原创 2015-08-16 15:30:43 · 501 阅读 · 0 评论 -
Android组件之Activity讲解
在Android系统中activity提供可视化的用户界面,一个Android应用通常由多个activity组成。多个activity组成了Activity栈,当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。 创建一个Activity界面一般是继承Activity类(当然也可以继承ListActivity、MapActivity等)原创 2015-08-15 16:27:32 · 649 阅读 · 0 评论 -
Android Training - 适配不同的屏幕(Lesson 1 - 支持不同的屏幕大小)
Android设备屏幕不一,为了更好的用户体验,我们必须做适配不同屏幕的操作Dependencies and prerequisitesAndroid 1.6 or higher (2.1+ for the sample app)Basic knowledge of Activities and FragmentExperience building an Android转载 2015-12-05 12:10:18 · 590 阅读 · 0 评论