作者:刘昊昱
博客:http://blog.csdn.net/liuhaoyutz
Android版本:4.4.2
在上一篇文章中我们看了一个使用Handler处理Message消息的例子,本文我们来分析一下其背后隐藏的Android消息处理机制。
我们可能比较熟悉Windows操作系统的消息处理模型:
while(GetMessage(&msg,NULL, 0, 0))
{
...
IOS 中获取系统版本,比较简单([[UIDevice
currentDevice] systemVersion]);
看到网络上很多转化系统字符串到float 的方法,都是使用 [[[UIDevice currentDevice] systemVersion] floatValue];
但是这个方法我遇到一个问题,就是如果系统版本是7.1.1 的时候,转化生成的float 有问题,我...
Android作为目前主流的移动操作系统,完全符合SQLite占用资源少的优势,故在Android平台上,集成了一个嵌入式关系型数据库—SQLite。如果想要开发 Android 应用程序,需要在 Android 上存储数据,使用SQLite 数据库是一种非常好的选择。在一般程序中使用数据库的过程都可以框架化,套路化,实例如下:
表说明:
1.班级 classes:
...
开发了android程序就知道,原生的模拟器启动比较慢,还会出现莫名的问题,这边介绍另外一种模拟器:
BlueStacks:BlueStacks是一个可以让Android 应用程序运行在Windows系统(目前,该公司再次宣布推出Mac版Bluestacks模拟器。)上的软件,由BlueStacks公司推出。BlueStacks新版本App Player采用名为Layercake的技术,可以让针...
今天真机调试的时候莫名其妙遇到了这样的一个问题:This product type must be built using a provisioning profile, however no provisioning profile matching both the identity "iPhone Developer" and the bundle identifier.....具体如下图所...
1. ArrayList,Vector, LinkedList 的存储性能和特性
ArrayList 和 Vector 都是使用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,它们都允许直接按 序号索引元素,但是插入元素要涉及数组元素移动等内存操作,所以索引数据快而插入数据慢,Vector 由于使用了 synchroni zed 方法(线程安全),通常性能上较 ArrayLi...
我们可以看到方法名是以Java_com_lms_jni等开头的,还有什么所谓的Signature,那这些其实都是什么意思呢,今天我们就来简单地认识一下。
JNI 命名规则
对于传统的JNI编程来说,JNI方法跟Java类方法的名称之间有一定的对应关系,要遵循一定的命名规则,如下:
1) 前缀: Java_
2) 类的全限定名,用下划线进行分隔(_):com_lms_jni_JniTest
3) 方法名:getTestString ...
典型错误案例:
经常我们会通过addView方法,动态添加一些子布局,比如下面的一段代码.
LinearLayout linParent = (LinearLayout) findViewById(R.id.aty_slider_linParent);View vChild = mInflater.inflate(R.layout.view_loding, null);linP...
阅读本节内容前可先了解 apkplug基础教程
本教程是基于apkplug V1.6.8 版本编写 最新开发方式以官网为准
可下载最新的apkplugdemo源码http://git.oschina.net/plug/apkplugDemos
apkplugdemo演示图
一 apkplugdemo工程源码结构
src
|-c...
Android的PackageManger源码分析...
亲爱的网友,我这里有套课程想和大家分享,如果对这个课程有兴趣的,可以加我的QQ2059055336和我联系。
课程内容简介
我们软件是基于移动设备的。所以我们必然的选择了安卓作为我们的开发工具。课程中,我们将简要的介绍Android的基本概念,然后进行我们的实战开发。在开发中,大家讲学习到基本的组件,适配UI,数据的存储,多线程下载,开机广播,闹钟提醒,短信发送等实际项目开发...
第一、复制对象的基本概念
复制一个对象为副本,开辟一块新的内存来存储副本对象。
第二、如果一个对象想具备复制的功能,必须实现协议和协议
NSObject自带的常用的对象有:NSNumber、NSString、NSArray、NSDictionary、NSMutableArray、NSMutableDictionay、NSMutableString,copy产生的对象时不可变的,mutable...
直接上代码了 头文件
// 图片处理 0 半灰色 1 灰度 2 深棕色 3 反色
+(UIImage*)imageWithImage:(UIImage*)image grayLevelType:(UIImageGrayLevelType)type;
//色值 变暗多少 0.0 - 1.0
+(UIImage*)imageWithImage:(UIImage*)image darkV...
<!--
Copyright 2011 Google Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the L...
通常修改包名时会造成R文件错误,并且有时带有原因不明的Manifest文件中多处文本混乱。
所以,将目前认为最为简洁方便的修改包名流程记录如下:
假设我们目前的包名为com.pepper.util,我们将要把包名修改为com.pp.util
1、点击项目右击——>Android Tools——>rename application package:修改好包名——>点击OK——>点击finis...
上一篇说到了通知栏Notification,提起通知栏,不得让人想到Service以及BroadcastReceive,作为android的4大组建的2个重要成员,我们没少和它们打交道。它们可以在无形中使我们的软件和网络、数据库、系统等进行交互,之后通过UI(Notification就是一种展示方式)把结果展现在我们面前。可以说,他们是android生命体系里面的神经系统,通过反射条件让身体展现不...
我们的常用的系统中,程序的工作通常是有事件驱动和消息驱动两种方式,在Android系统中,Java应用程序是靠消息驱动来工作的。
消息驱动的原理就是:
1. 有一个消息队列,可以往这个队列中投递消息;
2. 有一个消息循环,不断从消息队列中取出消息,然后进行处理。
在Android中通过Looper来封装消息循环,同时在其中封装了一个消息队列MessageQueue。
另外Andro...