![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
*07 Android
文章平均质量分 61
要什么昵称嘛
做技术好多年了,期间有过彷徨,但是我还是选择了坚持,决心把技术这条路执着的走下去。座右铭:付出才有回报。
展开
-
第九章 多语言环境的支持和多屏幕的适配(3)
9.3.4详细说明DensityDensity值,表示每英寸有多少个显示点,它与屏幕分辨率是两个概念。HVGA屏density=160;QVGA屏density=120;WVGA屏density=240;WQVGA屏density=120。apk的资源包中,当屏幕density=240时,使用hdpi标签的资源;当屏幕density=160时,使用mdpi标签的资源;当屏幕density=120时原创 2016-03-23 13:49:49 · 2761 阅读 · 1 评论 -
[Android] 关于WebView的内存泄露问题
今天一同事,过来咨询内存泄露的问题。于是有了这篇blog,简单写一下,做个记录吧。他说他们的APP,查看内存占用,发现会快速增长,且不会减少,过来咨询一下大概原因。本来以为是使用大量图片,或者是代码逻辑问题导致内存无法释放,后来了解了一下,才发现他们的APP主要依赖WebView去访问大量的服务器端页面。这让我想到了以前曾经简单研究过的一个问题。简单说,这个问题的现象就是,在一个Activity中原创 2013-08-01 14:41:05 · 20105 阅读 · 0 评论 -
[Android] 一个将当前屏幕保存为图片文件的类(简单说就是抓屏)
现在无论是应用,还是游戏中,都经常会有分享的功能。分享,不仅要分享文字,也要分享应用或者游戏的屏幕截图,这样才能做到图文并茂,吸引到更多的用户。想要做图片的分享功能,首先就需要抓屏,将当前屏幕保存为一个图片文件。下面就是一个将当前的Activity直接保存为一个图片文件的类库,可以直接使用。需要的,直接拿来主义就好了。package com.gaolei.framework.android.uti原创 2013-07-08 16:53:20 · 6089 阅读 · 2 评论 -
Android中如何做到Service被关闭后又自动启动
首先要说的是,用户可能把这种做法视为流氓软件。大部分时候,程序员也不想把软件做成流氓软件,没办法,领导说了算。 我们在使用某些Android应用的时候,可能会发现安装了某应用以后,会有一些服务也会随之运行。而且,这些服务每次都会随着手机开机而启动。有的服务做的更绝,当用户在运行的服务中手动停止该服务以后,过了一段时间,服务又自动运行了。虽然,从用户的角度来说,这种方式比较流氓。但是,从程序员的角度原创 2011-12-05 09:43:23 · 47390 阅读 · 47 评论 -
最火的Android开源项目(转载)
了解常见的开源项目,可以扩大我们的视野,知道有哪些可以利用的资源,对于我们平常的设计和开发很有好处。当然,如果有更多时间的话,也可以专门学习某开源项目,提高自己的开发水平。以下是几个网址,是从网上看到的,简单介绍了一些Android开源项目,个人觉得了解一下,对于平时开发还是很有帮助的。有时间可以仔细看看。直接拿来用!最火的Android开源项目(一)http://www.csdn.net/art转载 2013-05-22 09:35:54 · 3306 阅读 · 0 评论 -
[Android] Android开发中实现多点触摸
多点触摸(MultiTouch),指的是允许计算机用户同时通过多个手指来控制图形界面的一种技术。与多点触摸技术相对应的就是单点触摸,单点触摸的设备已经有很多年了,小尺寸的有触摸式的手机,大尺寸的最常见的就是银行里的ATM机和排队查询机等等。多点触摸技术在实际开发过程中,用的最多的就是放大缩小功能。比如有一些图片浏览器,就可以用多个手指在屏幕上操作,对图片进行放大或者缩小。再比如一些浏览器,也可以通原创 2013-05-08 13:05:34 · 6793 阅读 · 2 评论 -
[Android] Android应用启动后自动创建桌面快捷方式
和IOS开发和Windows Phone开发相比,Android是开放的,Android上的开发也相对更加灵活,能够做很多事情。有的朋友会发现,在某些Android应用安装以后,第一次运行,就会在桌面创建快捷方式。这是如何做到的呢?要不怎么说Android特别开放呢,在Android开发中,只要发送一个广播,就可以实现这种需求了。废话不多说,以下是封装好的一段代码。public class Sho原创 2012-03-21 15:01:38 · 9196 阅读 · 4 评论 -
[Android] AndroidManifest.xml文件解析
一、关于AndroidManifest.xmlAndroidManifest.xml 是每个android程序中必须的文件。它位于整个项目的根目录,描述了package中暴露的组件(activities, services, 等等),他们各自的实现类,各种能被处理的数据和启动位置。 除了能声明程序中的Activities, ContentProviders, Services, 和Intent R转载 2013-03-13 17:31:04 · 2165 阅读 · 0 评论 -
[Android] Android开发优化之——对界面UI的优化(1)
在Android应用开发过程中,屏幕上控件的布局代码和程序的逻辑代码通常是分开的。界面的布局代码是放在一个独立的xml文件中的,这个文件里面是树型组织的,控制着页面的布局。通常,在这个页面中会用到很多控件,控件会用到很多的资源。Android系统本身有很多的资源,包括各种各样的字符串、图片、动画、样式和布局等等,这些都可以在应用程序中直接使用。这样做的好处很多,既可以减少内存的使用,又可以减少部分原创 2013-01-28 17:50:50 · 23182 阅读 · 2 评论 -
[Android] Android开发优化之——对界面UI的优化(2)
在一个应用程序中,一般都会存在多个Activity,每个Activity对应着一个UI布局文件。一般来说,为了保持不同窗口之间的风格统一,在这些UI布局文件中,几乎肯定会用到很多相同的布局。如果我们在每个xml文件中都把相同的布局都重写一遍,一个是代码冗余,可读性很差;另一个是修改起来比较麻烦,对后期的修改和维护非常不利。所以,一般情况下,我们需要把相同布局的代码单独写成一个模块,然后在用到的时候原创 2013-01-30 09:29:35 · 11793 阅读 · 7 评论 -
[Android] Android开发优化之——对Bitmap的内存优化
在Android应用里,最耗费内存的就是图片资源。而且在Android系统中,读取位图Bitmap时,分给虚拟机中的图片的堆栈大小只有8M,如果超出了,就会出现OutOfMemory异常。所以,对于图片的内存优化,是Android应用开发中比较重要的内容。 1) 要及时回收Bitmap的内存Bitmap类有一个方法recycle(),从方法名可以看出意思是回收。这里就有疑问了,Android系统有原创 2012-09-07 09:51:04 · 49276 阅读 · 16 评论 -
[Android] Android开发优化之——从代码角度进行优化
通常我们写程序,都是在项目计划的压力下完成的,此时完成的代码可以完成具体业务逻辑,但是性能不一定是最优化的。一般来说,优秀的程序员在写完代码之后都会不断的对代码进行重构。重构的好处有很多,其中一点,就是对代码进行优化,提高软件的性能。下面我们就从几个方面来了解Android开发过程中的代码优化。 1)静态变量引起内存泄露在代码优化的过程中,我们需要对代码中的静态变量特别留意。静态变量是类相关的变量原创 2013-01-24 12:41:15 · 19661 阅读 · 10 评论 -
[Android] Android开发优化之——对界面UI的优化(3)
本篇博文主要讨论一下复杂界面中常用的一种技术——界面延迟加载技术。 有时候,我们的页面中可能会包含一些布局,这些布局默认是隐藏的,当用户触发了一定的操作之后,隐藏的布局才会显示出来。比如,我们有一个Activity用来显示好友的列表,当用户点击Menu中的“导入”以后,在当前的Activity中才会显示出一个导入好友的布局界面。从需求的角度来说,这个导入功能,一般情况下用户是不使用的。即大部分时候原创 2013-02-01 09:20:43 · 9380 阅读 · 1 评论 -
[Android] Android开发优化之——使用软引用和弱引用
Java从JDK1.2版本开始,就把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。这里重点介绍一下软引用和弱引用。如果一个对象只具有软引用,那么如果内存空间足够,垃圾回收器就不会回收它;如果内存空间不足了,就会回收这些对象的内存。只要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。软引用原创 2013-01-10 12:49:46 · 65982 阅读 · 25 评论 -
[Android] Android中动态添加Panel的框架代码
项目经常会有这种需求,就是想动态的在某个界面上添加一个Panel。比如,有一个按钮,点击后会显示下拉菜单式的界面。这种需求,就属于动态添加一个Panel。需求多了,就要研究是否可以抽象出通用的框架代码,以方便开发,所以就有了以下内容。这里说是框架,说的大了点,其实没有那么复杂,只是一个容易扩展的基类而已。不过至少算是框架类的代码。package arui;import android.ap原创 2012-10-10 17:03:27 · 3687 阅读 · 0 评论 -
[Android] Android中将一个图片切割成多个图片
有种场景,我们想将一个图片切割成多个图片。比如我们在开发一个拼图的游戏,就首先要对图片进行切割。以下是封装好的两个类,可以实现图片的切割。仅供参考和学习。一个是ImagePiece类,此类保存了一个Bitmap对象和一个标识图片的顺序索引的int变量。package arui319.blog.csdn.net;import android.graphics.Bitmap;publi原创 2012-04-17 16:42:27 · 16782 阅读 · 6 评论 -
[Android] Android应用开发中模拟按HOME键效果
Android应用开发中, 有一种场景,就是我们不希望用户直接按Back键退出Activity,而是希望应用隐藏到后台,类似于按Home键的效果。 下面提供代码示例,请参考。 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) { Intent i原创 2012-02-15 11:43:33 · 6531 阅读 · 4 评论 -
[Android] Android应用插件式开发解决方法
Android应用插件式开发解决方法一、现实需求描述一般的,一个Android应用在开发到了一定阶段以后,功能模块将会越来越多,APK安装包也越来越大,用户在使用过程中也没有办法选择性的加载自己需要的功能模块。此时可能就需要考虑如何分拆整个应用了。二、解决方案提出一般有两种方式,一种是将应用按照功能分拆成多个应用,用户需要哪个就下载哪个,都需要就都下载。应用之间,可以在代码层面做一定的关联,以共享原创 2012-10-25 10:28:21 · 11353 阅读 · 7 评论 -
Android系统手机端抓包方法
以前被问过:“在Android手机上如何抓包”,当时我的回答是“不晓得”。今天偶然看到一篇博文,说的就是如何抓包的事情。特记录于此,学习学习。朋友们也可以了解一下。原文作者:selience 原文链接:http://blog.sina.com.cn/s/blog_5f8d04170101fk1u.html文章内容:抓包准备1. Android手机需要先获得root权限。一种是否获得root权限的检转载 2013-08-20 10:45:24 · 3277 阅读 · 0 评论 -
Android不同版本的Dialog的行为不同
自定义的某Dialog,发现不同Android版本的行为不同。android 4.0以上的系统,点击登录框以外的区域,会自动关闭登录框。这是因为android 4.0以上版本,默认的情况,就是设置了setCanceledOnTouchOutside(true)这个属性。所以,如果想统一不同Android版本上的效果,可以加入setCanceledOnTouchOutside(false)这样的代码原创 2013-11-19 16:56:42 · 2753 阅读 · 0 评论 -
《Android应用开发精解》
《Android应用开发精解》已经投放市场,当当和京东都有售,欢迎大家购买阅读,并且批评指正。写技术书籍,不是为了收入,因为稿费实在是太少了。写书只是希望能够把一些实践经验分享给各位开发者,希望读者能够从本书中有所受益。图书简介 本书以Android应用开发所需要的技术为线索,先后讲解了SDK一些工具的使用、UI开发、Service开发、数据存储、图形动画、网络开发、硬件原创 2012-10-09 14:40:17 · 4347 阅读 · 4 评论 -
第九章 多语言环境的支持和多屏幕的适配(2)
9.3多屏幕的适配9.3.1屏幕参数的基本概念Android手机屏幕大小不一,有480x320、640x360、800x480等等,还包括不同屏幕密度,怎样才能让应用程序自动适应不同的屏幕呢?首先我们来了解几个基本概念:1)屏幕尺寸Screensize即显示屏幕的实际大小,按照屏幕的对角线进行测量。为简单起见,Android把所有的屏幕大小分为四种尺寸:小、普通、大、超大(分别对应:small、n原创 2016-03-23 13:47:51 · 2680 阅读 · 0 评论 -
第九章 多语言环境的支持和多屏幕的适配(1)
第九章 多语言环境的支持和多屏幕的适配资源是在代码中使用到的,并且在编译时被打包进应用程序的附加文件。出于加载效率的考虑,资源被从代码中分离出来,而且XML文件被编译进二进制代码中。在Android中,程序代码可以不直接和资源发生关系,而是通过R文件提供的索引来间接的引用某一个资源。Android系统会自动根据用户当前的环境,和屏幕分辨率情况,自动选用最合适的资源。正是基于Android系统这种独原创 2016-03-23 13:46:33 · 3038 阅读 · 0 评论 -
第八章 网络的时代—网络开发(4)
8.5轻量级的数据交换格式—JSON8.5.1 客户端与服务器端的数据交互在Android应用开发中,尤其是网络应用的开发,我们经常需要从网络上获取数据,而不仅仅从本地数据库或者本地文件中取得数据,这个时候就涉及到客户端与服务器端的数据交互了。客户端如何需要与服务器端进行数据交互,就需要约定一种协议或者是数据交换格式。那么一般的,Android客户端与服务器端进行数据交互有哪些方式呢?根据业务需求原创 2016-03-21 11:43:11 · 3114 阅读 · 0 评论 -
第八章 网络的时代—网络开发(3)
8.4耗时操作的通用方式—多线程与异步处理Android通过一个主线程对用户界面进行更新,这个线程是UI线程。如果程序不使用任何并发构建、Android的所有代码都会在这个线程中运行。当我们在进行网络连接等比较耗时的操作时,如果此连接动作直接在主线程,也就是UI线程中处理,会发生什么情况呢?整个程序处于等待状态,界面似乎是“假死”掉了。如果5秒钟以上没有响应,系统就会弹出对话框提示是否要强制关闭应原创 2016-03-21 11:41:10 · 2777 阅读 · 0 评论 -
第八章 网络的时代—网络开发(2)
8.3基于最成熟的Web协议—HTTP协议编程8.3.1 HTTP协议简介超文本传输协定(HTTP,HyperTextTransferProtocol)是互联网上应用最为广泛的一种网络协议。所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。HTTP是一个客户端和服务器端请求和应答的标准(TCP)。客户端是终端用户,服务器端是网站。通过使用Web浏原创 2016-03-21 11:37:03 · 2699 阅读 · 0 评论 -
第八章 网络的时代—网络开发(1)
在最近几年里,移动互联网已经是一个炙手可热的领域。移动互联网,简单的说,就是互联网的延伸,将互联网从电脑延伸至手机等移动设备上。伴随着智能手机的普及,以及基于智能手机的各种应用和服务的滋生,如今的移动互联网真正意义上进入了高速发展的阶段。而Android作为智能手机的重要平台之一,必然就会有越来越多的Android应用瞄准这个市场。在现有的Android应用中,有很大一部分都是网络相关的应用。所以原创 2016-03-21 11:35:06 · 3267 阅读 · 0 评论 -
SwipeRefreshLayout与ViewPager滑动事件冲突解决
问题描述:开发中发现,SwipeRefreshLayout的下拉刷新,与ViewPager开发的banner的左右滑动事件有一点冲突,导致banner的左右滑动不够顺畅。很容易在banner的左右滑动的过程中,触发SwipeRefreshLayout的下拉刷新,从而导致banner左右滑动的体验很差。解决方案:可以在ViewPager的滑动时候设置SwipeRefreshLayout暂时不可用,V原创 2016-01-13 11:42:38 · 6950 阅读 · 1 评论 -
Android应用安全防御
Android应用安全防御 http://www.cnblogs.com/GOODHACKER/P/3864680.HTML转载 2015-07-01 16:27:31 · 2844 阅读 · 0 评论 -
Android开源项目分类汇总
Android开源项目分类汇总https://github.com/singwhatiwanna/android-open-project个人记录于此,同时分享给大家。转载 2015-06-03 10:47:26 · 2492 阅读 · 0 评论 -
第七章 实现炫酷效果—图像和动画(2)
7.3 变化多端—Drawable(绘图类)Drawable资源是Android系统中使用最广泛、最灵活的资源,可以直接使用png、jpg、gif、9.png等图片做为资源文件,也可以使用多种XML文件做为资源文件。下面详细介绍下各种Drawable资源。7.3.1Drawable的一些常用子类Android平台的Drawable代表可以绘制在屏幕上的资源,可以使用getDrawable(int)原创 2015-05-31 12:29:59 · 2924 阅读 · 1 评论 -
第七章 实现炫酷效果—图像和动画(6)
7.8 渐变动画—Frame AnimationFrameAnimation是按顺序播放事先做好的图像,跟播放电影类似。可以参考前面的7.3.7章节——《简单的帧动画—AnimationDrawable》。 经验分享: AnimationDrawable也可以通过代码来生成AnimationDrawable对象: AnimationDrawable mAnimationDrawable原创 2015-05-31 12:45:45 · 3271 阅读 · 2 评论 -
第七章 实现炫酷效果—图像和动画(5)
7.7 渐变动画—Tween Animation7.7.1Tween Animation简介一个Tween动画将对视图对象中的内容进行一系列简单的转换(位置,大小,旋转,透明性)。如果你有一个文本视图对象,你可以移动它,旋转它,让它变大或让它变小,如果文字下面还有背景图像,背景图像也会随着文件进行转换。可以使用XML来定义Tween Animation。首先将动画的XML文件在工程中res/ani原创 2015-05-31 12:43:18 · 3126 阅读 · 1 评论 -
第七章 实现炫酷效果—图像和动画(4)
7.4 轻量级图片—PictureDrawable、Bitmap都是比较常用的图形对象类。我们在阅读Android SDK文档还会发现一个类:android.graphics.Picture。那么Picture又是做什么用的呢?相对于Drawable和Bitmap而言,Picture对象就小巧的多,它并不存储实际的像素,仅仅记录了每个绘制的过程。整个类提供了两个重载形式,其中比较特别的是Pictu原创 2015-05-31 12:37:36 · 2535 阅读 · 0 评论 -
第七章 实现炫酷效果—图像和动画(3)
7.3.6超炫的特效—ShapeDrawable当你想去使用一些常用的图形,ShapeDrawable对象可能会对你有很大的帮助。当然通过ShapeDrawable,你可以通过编程画出任何你想到的图像与样式,因为ShapeDrawable有自己的draw()方法。ShapeDrawable继承了Drawable,所以你可以调用Drawable里有的函数,使用方法和其他的Drawable的子类差不多原创 2015-05-31 12:33:53 · 3019 阅读 · 0 评论 -
第七章 实现炫酷效果—图像和动画(1)
第七章实现炫酷效果—图像和动画学完上一章,相信读者对Android画图核心部分有了一定的了解。为了实现更加炫酷的效果,我们可能会在我们的应用中使用大量的图像和动画效果。本章我们将详细介绍Android中的各种图像对象的使用,以及动画的使用。学习完本章,相信读者可以独立开发出有着绚丽的视觉效果的Android应用了。7.1 Android的几种常用图像类型Android中的图像对象,主要有andro原创 2015-05-31 12:24:28 · 3526 阅读 · 0 评论 -
[Android] Web Console: Uncaught TypeError: Object [object Object] has no method 'xxx'
我们开发的产品,有一部分功能,需要在WebView中打开web页面,然后在web页面中通过js方法回调部分native的功能。对于web回调native的开发方式,如果不了解的话,可以参考我以前的一篇博文《Android中Webview使用自定义的javascript进行回调》http://blog.csdn.net/arui319/article/details/7044638 最近测试发现,在原创 2014-01-20 16:12:03 · 20363 阅读 · 6 评论 -
[Android] Proguard And DexGuard
一般情况下,我们混淆自己的安卓项目,会使用Proguard。http://www.saikoa.com/proguardProgurad是免费的,而且已经集成到Android ADT中了,使用起来很方便。混淆工作,是为了保护我们的代码。但是,即使使用Pgoruard混淆了我们的apk文件,也可以使用apktool工具反编译出资源,能够看到Manifest文件,res资源等等。也可以使用dex2ja原创 2014-01-16 16:07:29 · 18916 阅读 · 1 评论 -
[Android] 监听系统网络连接打开或者关闭的消息
很简单,所以直接看代码。package xxx;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.net.ConnectivityManager;import android.net.Ne原创 2012-11-09 15:36:31 · 6918 阅读 · 2 评论 -
[Android] 将Android工程做成jar包和资源文件
有时候,我们希望将我们的Android工程提供给第三方开发者使用。这个时候,最普遍的做法,就是提供一个jar包和一堆资源文件,第三方开发者可以将资源文件拷贝到Android工程的相应目录下,同时引用我们提供的jar包,就可以使用我们提供的相应API了。需要特别注意的是,以jar包和资源包方式提供给第三方开发者,我们的工程的代码中就不能使用类似于R.layout.main、R.string.na原创 2012-10-29 11:06:50 · 5671 阅读 · 6 评论