
android
文章平均质量分 86
robert_chao
欢迎关注我的博客 https://www.lelecoding.cn
展开
-
android菜单
android 菜单今天看了pro android 3中menu这一章,对Android的整个menu体系有了进一步的了解,故整理下笔记与大家分享。PS:强烈推荐《Pro Android 3》,是我至今为止看到的最好的一本android书,中文版出到《精通Android 2》。理解Android的菜单菜单是许多应用程序不可或缺的一部分,Android中更是如此,所有转载 2014-01-15 14:13:52 · 1601 阅读 · 0 评论 -
android剪切板
android2.1之后版本 其一:(已运行成功) ClipboardManager clip = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); clip.getText(); // 粘贴 clip.setText(str); // 复制 其二: ClipboardManag原创 2014-01-15 14:48:15 · 1196 阅读 · 0 评论 -
同步协议简单介绍
同步协议 同步协议必须有一种策略解决这样的冲突.在SyncML中,冲突策略是同步引擎的一个基本功能,通常是由同步引擎的同步服务器来解决版本冲突问题,也有可能有写客户端设备提供解决这一问题的解决方式.在同步描述协议提供了通过通知同步客户端冲突决定和状态码的通用解决方案.如果同步引擎的服务端确定一个冲突,服务端将使用状态码和通知功能通知同步客户端并定义解决方案.下面是一些常用的状态码和冲原创 2016-05-10 21:08:47 · 5864 阅读 · 0 评论 -
RxJava介绍
RxJava github地址 https://github.com/ReactiveX/RxJavaReactiveX 官网 http://reactivex.io/intro.htmlRxJava 是什么RxJava is a Java VM implementation of Reactive Extensions: a library for composing async原创 2016-05-25 17:50:44 · 2921 阅读 · 0 评论 -
TextView文本效果
1、BackgroundColorSpan 背景色 2、ClickableSpan 文本可点击,有点击事件3、ForegroundColorSpan 文本颜色(前景色)4、MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)5、MetricAffectingSpan 父类,一般不用6、RasterizerSpa原创 2016-05-25 18:52:41 · 2089 阅读 · 0 评论 -
Android Home按键的监听与屏蔽方式
在最新的Android系统中是不能直接屏蔽home按键的,但是还是可以监听到home按键这个事件。先说一下最彻底的方法,但是需要系统签名public void blockHomeKey(boolean block) { try { IWindowManager iWindowManager = IWindowManager.Stub. asInterface(Servic原创 2016-05-25 21:02:56 · 4887 阅读 · 0 评论 -
Android自动测试之Monkey工具
一、 什么是MonkeyMonkey是Android中的一个命令行工具,可以运行在模拟器里或实际设备中。它向系统发送伪随机的用户事件流(如按键输入、触摸屏输入、手势输入等),实现对正在开发的应用程序进行压力测试。Monkey测试是一种为了测试软件的稳定性、健壮性的快速有效的方法。 二、 Monkey的特征1、 测试的对象仅为应用程序包,有一定的局限性。2、 M原创 2016-05-26 20:33:17 · 2823 阅读 · 0 评论 -
Android原生Json解析
android的json解析部分都在包org.json下,主要有以下几个类: JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本单元,其包含一对儿(Key/Value)数值。它对外部(External: 应用toString()方法输出的数值)调用的响应体现为一个标准的字符串(例如:{"JSON": "Hello, World"},最外被原创 2016-05-26 22:31:22 · 4899 阅读 · 0 评论 -
android自定义dialog
在android中我们经常会用AlertDialog来显示对话框。通过这个对话框是显示在屏幕中心的。但在某些程序中,要求对话框可以显 示在不同的位置。例如,屏幕的上方或下方。要实现这种效果。就需要获得对话框的Window对象,获得这个Window对象有多种方法。最容易的就是直接 通过AlertDialog类的getWindow方法来获得Window对象。透明的对话框默认显示的对话转载 2014-01-15 14:51:22 · 1958 阅读 · 0 评论 -
签名工具的使用
下面是OPENSSL生成密钥对示例: 一,使用RSA算法: 生成私钥:openssl genrsa -out privatekey.key 1024 对应公钥:openssl rsa -in privatekey.key -pubout -out pubkey.keyjava -Xmx2048m -jar out/host/linux-x86/framework/signa原创 2015-01-08 13:27:24 · 4549 阅读 · 0 评论 -
android SQL 语句
基础 创建数据库 创建之前判断该数据库是否存在 if exists (select * from sysdatabases where name='databaseName') drop database databaseName go Create DATABASE database-name 删除数据库 drop database dbname 备份sql转载 2014-01-14 14:03:43 · 5030 阅读 · 0 评论 -
AndroidManifest详解
一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent原创 2016-05-27 22:22:29 · 6824 阅读 · 0 评论 -
Android - LayoutInflater和inflate方法的用法
在实际开发中LayoutInflater这个类还是非常有用的,它的作用类似于findViewById()。不同点是LayoutInflater是用来找res/layout/下的xml布局文件,并且实例化;而findViewById()是找xml布局文件下的具体widget控件(如 Button、TextView等)。具体作用:1、对于一个没有被载入或者想要动态载入的界面,都需要使用Layo原创 2016-05-28 08:03:59 · 21645 阅读 · 1 评论 -
Filter 过滤器
一、结构 public abstract class Filter extends Object java.lang.Object android.widget.Filter 二、概述 过滤器通过过滤模式来约束数据,通常由实现了Filterable接口的子类来生成。 过滤操作是通过调用 filter(CharSequence) 或者 filter原创 2016-05-28 09:18:19 · 3614 阅读 · 0 评论 -
android开发播放声音文件
有两种播放音频形式,第一个:MediaPlayer 类 ;第二个:SoundPool 类MediaPlayer mediaPlayer01;mediaPlayer01 = MediaPlayer.create(YouActivity.this, R.raw.xxxx);mediaPlayer01.start(); 网上有很多介绍mp播放声音文件的几种方式就是:1.用R.ra原创 2016-05-29 15:06:49 · 17803 阅读 · 0 评论 -
android 图片压缩
Android中最占内存的肯定是图片资源了,使用大图很容易造成OOM,就算是小图,使用不当也会造成很大的资源浪费。有一点需要明确一下,图片最终占内存跟图片大小本身没什么关系,比如说有一张1k的图片,还有一张1M的图片,两张图片加载到内存中设置的长宽一样,图片质量也一样,那么他们他们占的内存是一样大的。如何计算图片占内存大小呢?图片加载到内存中的长*图片加载到内存中的宽*一个像素点所占内存原创 2016-05-29 21:23:38 · 2194 阅读 · 0 评论 -
ThreadLocal介绍
一、概述ThreadLocal是什么呢?其实ThreadLocal并非是一个线程的本地实现版本,它并不是一个Thread,而是 threadlocalvariable(线程局部变量)。也许把它命名为ThreadLocalVar更加合适。线程局部变量 (ThreadLocal)其实的功用非常简单,就是为每一个使用该变量的线程都提供一个变量值的副本,是Java中一种较为特殊的线程绑定机制,是每一原创 2016-05-30 07:17:39 · 1968 阅读 · 0 评论 -
Android里Service的bindService()和startService()混合使用深入分析
先讲讲怎么使用bindService()绑定服务应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder绑定是异步的.bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个ServiceConnecti原创 2016-05-30 13:03:36 · 8467 阅读 · 0 评论 -
okhttp3与旧版本okhttp的区别分析
OkHttp的基本使用HTTP GETOkHttpClient client = new OkHttpClient();String doGet(String url) throws IOException { Request request = new Request.Builder().url(url).build(); Response response = cl原创 2016-05-06 17:01:54 · 14583 阅读 · 8 评论 -
Android内存泄露分析和处理
什么是内存泄露Java使用有向图机制,通过GC自动检查内存中的对象,如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收。内存泄露的原因1.资源对象没关闭造成的内存泄漏资源性对象比如 (Cursor,File文件等)往往都用了一些缓冲,我们在不使用的时候,应该及时关闭它们,以便它们的缓冲及时回原创 2016-05-05 20:44:02 · 3692 阅读 · 0 评论 -
Android动画
Android 平台提供了两类动画。 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转、平移、放缩和渐变)。第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似。 下面就讲一下Tweene Animations。 主要类: Animation 动画AlphaAnimation转载 2015-01-14 13:34:20 · 1113 阅读 · 0 评论 -
AlarmManager的使用
AlarmManager的作用文档中的解释是:在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent。android提供了四种类型的闹钟:❑ ELAPSED_REALTIME在指定的延时过后,发送广播,但不唤醒设备。❑ ELAPSED_REALTIME_WAKEUP原创 2015-01-13 11:52:09 · 2266 阅读 · 0 评论 -
Android中PopupWindow的使用
01public class PopUpActivity extends Activity { 02 /** Called when the activity is first created. */ 03 @Override 04 pu转载 2015-01-08 09:20:31 · 1743 阅读 · 0 评论 -
Android系统服务
Android系统本身提供了很多系统服务,如WindowManagerService,PowerManagerService等。下面描述一下添加一个系统服务的具体步骤。1、 撰写一个aidl文件,定义服务的接口,将在编译过程中通过aidl工具生成对应的java接口。一般系统服务的aidl文件都放在framework\base\core\java\android\os目录中原创 2015-01-06 14:26:49 · 1096 阅读 · 0 评论 -
android桌面组件开发
Widget是Android1.5版所引进的特性之一.Widget,可让用户在主屏幕界面及时了解程序显示的重要信息.标准的Android系统已包含几个Widget的示例,如模拟时钟,音乐播放器等.1、AppWidget 框架类1、AppWidgetProvider :继承自 BroadcastRecevier , 在AppWidget 应用 update、enable、disabl原创 2014-01-21 09:27:17 · 6395 阅读 · 0 评论 -
Android获取view高度
getMeasuredHeight()与getHeight的区别实际上在当屏幕可以包裹内容的时候,他们的值相等,只有当view超出屏幕后,才能看出他们的区别:getMeasuredHeight()是实际View的大小,与屏幕无关,而getHeight的大小此时则是屏幕的大小。当超出屏幕后,getMeasuredHeight()等于getHeight()加上屏幕之外没有显示的原创 2016-05-30 23:17:14 · 6606 阅读 · 1 评论 -
Android 毛玻璃效果的实现
Android 毛玻璃效果,主要找到了3中实现方案,1、如果系统的api在16以上,可以使用系统提供的方法直接处理图片 if (Build.VERSION.SDK_INT > 16) { Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true); final RenderScript rs = RenderScript.原创 2016-05-31 08:05:21 · 2277 阅读 · 0 评论 -
Okhttp的高效使用方式
OkHttp 是一个很重要的开源库。它的默认配置已经提供了很好的效果,我们还是采取了一些措施提高 OkHttp 的可用性和自我检查能力:1. 在文件系统中开启响应缓存有些响应消息通过包含Cache-Control HTTP首部字段允许缓存,但是默认情况下,OkHttp 并不会缓存这些响应消息。因此你的客户端可能会因为不断请求相同的资源而浪费时间和带宽,而不是简单地读取一下首次响应消息的缓存原创 2016-05-07 00:15:56 · 7067 阅读 · 0 评论 -
Android的广播
一、Android广播机制概述Android广播分为两个方面:广播发送者和广播接收者,通常情况下,BroadcastReceiver指的就是广播接收者。广播作为Android组件间的通信方式,可以使用的场景如下:1.同一app内部的同一组件内的消息通信(单个或多个线程之间);2.同一app内部的不同组件之间的消息通信(单个进程);3.同一app具有多个进程的不同组件之间的消息通信;原创 2016-05-07 09:27:15 · 1873 阅读 · 0 评论 -
Android H5判断是否安装app和唤起APP
H5中是无法直接判断应用是否安装的,但是可以间接判断。第一种方式,if(...){document.location = '';setTimeout(function(){ //此处如果执行则表示没有app},200);}这里的逻辑很简单,当没有成功打开app的时候新页面不会弹出则页面逻辑可言进行,如果进入了新页面,则页面逻辑便终止了所以我们可以另开一个原创 2016-05-05 18:35:08 · 22109 阅读 · 0 评论 -
ContentProvider权限设置
SQLiteDatabase db= databaseHelper.getWritableDatabase();Cursor cursor = db.query("person", new String[]{"id,name,age"}, "name like ?", new String[]{"%robert%"},null,null, "id desc", "1,2");...原创 2016-05-07 22:59:02 · 14789 阅读 · 0 评论 -
Android进程间通信
如果想要进行IPC通信,一般写一个AIDL接口,再写一个Service子类,然后实现AIDL接口 当做IBinder返回给Activity界面层。如果不想写AIDL接口文件,只是单线程中与Service进行通信 我们可以用Android写好的Messenger类来处理,一样能将消息传递给Service进行通信。什么是aidl:aidl是 Android Interface defini原创 2016-05-08 10:43:19 · 1333 阅读 · 0 评论 -
StrictMode介绍
作为Android开发,日常的开发工作中或多或少要接触到性能问题,比如我的Android程序运行缓慢卡顿,并且常常出现ANR对话框等等问题。既然有性能问题,就需要进行性能优化。正所谓工欲善其事,必先利其器。一个好的工具,可以帮助我们发现并定位问题,进而有的放矢进行解决。本文主要介绍StrictMode 在Android 应用开发中的应用和一些问题。什么是StrictModeStrictMo原创 2016-05-18 20:56:12 · 5522 阅读 · 0 评论 -
强制结束Android进程
Android中,虽然有很多方法(API或者shell命令)杀死后台`service`,但是仍然有很多程序几秒内再次启动,导致无法真正的杀死。这里主要着重介绍如何像 360 一样杀死Android后台服务,而不会再次启动。kill 后台应用程序的方法* android.os.Process.killProcess(pid);* activityManager.killBackgroun...原创 2016-05-08 17:16:04 · 8258 阅读 · 5 评论 -
Android依赖注入Dagger的使用和源码解析(上篇)
依赖注入是从应用程序的角度在描述,可以把依赖注入描述完整点:应用程序依赖容器创建并注入它所需要的外部资源;而控制反转是从容器的角度在描述,描述完整点:容器控制应用程序,由容器反向的向应用程序注入应用程序所需要的外部资源。 Dagger1是Android上最流行的依赖注入框架。它是由Square公司受到Guice启发创建的。Dagger2是Dagger1的分支,由谷歌公司接手开发,目前的版本是2.2。Dagger2是受到AutoValue项目的启发原创 2016-06-01 21:27:29 · 5323 阅读 · 0 评论 -
Android.mk的使用
一个Android.mk file用来向编译系统描述你的源代码。具体来说:该文件是GNU Makefile的一小部分,会被编译系统解析一次或多次。你可以在每一个Android.mk file中定义一个或多个模块,你也可以在几个模块中使用同一个源代码文件。编译系统为你处理许多细节问题。例如,你不需要在你的Android.mk中列出头文件和依赖文件。NDK编译系统将会为你自动处理这些问题。这也意味着,原创 2016-05-08 20:57:33 · 3078 阅读 · 0 评论 -
SQLite 介绍
SQLite 是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 其特点是高度便携、使用方便、结构紧凑、高效、可靠。 与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下 - 只要确保SQLite的二进制文件存在即可开始创建、连接和使用数据库。如果您正在寻找一个嵌入式数据库项目或解决方案,SQLite是绝对值得考虑。1. 介绍SQLite原创 2016-05-09 21:41:33 · 1532 阅读 · 0 评论 -
Android播放声音文体
android开发播放声音文件一、 MediaPlayer 播放音频的实现步骤:1. 调用MediaPlayer.create(context, R.raw.himi); 利用MediaPlayer类调用create方法并且传入通过id索引的资源音频文件,得到实例;2. 得到的实例就可以调用 MediaPlayer.star(); 此类适合播放较大文件,此类文件应该存储在SD卡原创 2016-05-09 22:54:59 · 2026 阅读 · 0 评论 -
AndroidN行为变更和后台优化
行为变更参照:http://developer.android.com/intl/zh-cn/preview/behavior-changes.html本文内容性能提升打盹后台优化权限更改辅助工具改进屏幕缩放设置向导中的视觉设置NDK 应用链接至平台库Android for Work另请参阅Android N转载 2016-05-03 11:51:24 · 6175 阅读 · 1 评论 -
Android屏幕适配
一、一些基本概念1、长度(真实长度):英寸、inch2、分辨率:density 每英寸像素数 dpi(密度)3、像素:px4、dip的公式:px /dip=dpi/160 所以 dip 类似于英寸、长度(dp=dip,sp类似于dip) dip=160*inchdip= 160/dpi * px当dip一定时,dpi 越大,px就越大5、广义分辨率=长px*宽px原创 2016-06-23 22:41:26 · 4452 阅读 · 5 评论