android开发
文章平均质量分 73
曲终人散J
这个作者很懒,什么都没留下…
展开
-
关于ViewPager的懒加载问题
默认情况下,系统自带的viewpager至少会提前加载下一个页面,无法禁止,想要禁止,只能通过自定义viewpager来实现;这是在Android open source 上找到的懒加载viewpager/* * Copyright (C) 2011 The Android Open Source Project * * Licensed under the Apache Licen原创 2014-12-11 08:29:34 · 5036 阅读 · 2 评论 -
Android源码分析-对点击事件派发机制
概述一直想写篇关于Android事件派发机制的文章,却一直没写,这两天刚好是周末,有时间了,想想写一篇吧,不然总是只停留在会用的层次上但是无法了解其内部机制。我用的是4.4源码,打开看看,挺复杂的,尤其是事件是怎么从Activity派发出来的,太费解了。了解Windows消息机制的人会发现,觉得Android的事件派发机制和Windows的消息派发机制挺像的,其实这是一种典型的消息“冒泡”转载 2015-01-30 10:59:58 · 533 阅读 · 0 评论 -
Java 如何实现InputStream的任意拷贝
有时候,当我们需要多次使用到同一个InputStream的时候如何实现InputStream的拷贝使用我们可以把InputStream首先转换成ByteArrayOutputStream.然后你就可以任意克隆你需要的InputStream了代码如下:ByteArrayOutputStream baos = new ByteArrayOutputStream();byte[]原创 2015-01-12 14:51:54 · 10330 阅读 · 0 评论 -
Android首页轮播图直接拿来用
import java.util.ArrayList;import java.util.List;import java.util.concurrent.Executors;import java.util.concurrent.ScheduledExecutorService;import java.util.concurrent.TimeUnit;import android.co原创 2015-01-30 11:02:59 · 1289 阅读 · 0 评论 -
android夜间模式的实现
attr.xml文件 color文件 #000000 #ffffff #ff87cefa #ff87cefa #000000 #ffffffstyle文件 @color/light_color @color/light_item_color原创 2014-12-08 15:03:58 · 679 阅读 · 0 评论 -
ScrollView与WebView结合使用时,设置webview字体大小的时候出现下方留白的终极解决方案
当ScrollView嵌套WebView的时候,如果需要调用WebView的setTextSise的时候,会出现底部一大片空白,试了很多方法都不管用,无意中找到了一个解决方案,居然可以了,我也是醉了,当初居然没有想到这么做.好了,下面看代码吧。首先写一个重置WebView高度的方法@JavascriptInterfacepublic void resize(final float hei原创 2015-02-05 11:43:22 · 3248 阅读 · 2 评论 -
Android设置Notification从网络中加载图片,解决点击无法消失的bug
Notification的构造函数中只支持使用资源文件的图片作为图片,但是如果我们想用网络中的图片怎么办呢。我们知道,给Notification设置内容的时候调用的是setLatestEventInfo方法,当我们点击去看该方法的时候,所有的结果都一目了然了。public void setLatestEventInfo(Context context, Char原创 2015-03-11 14:46:04 · 6194 阅读 · 0 评论 -
关于webview的一切
1.基本设置mWebView.getSettings().setJavaScriptEnabled(false);表示不支持js,如果想让java和js交互或者本身希望js完成一定的功能请把false改为true。mWebView.getSettings().setSupportZoom(false);设置是否支持缩放,我这里为false,默认为true。mWebVie转载 2015-03-11 15:40:46 · 1512 阅读 · 0 评论 -
android中的动画全解析
Android为我们提供了2中动画一: Tween Animation 渐变动画 通过对特定对象做图像的变换,例如: 平移, 缩放,旋转, 淡入淡出 等。二: Frame Animation 帧动画 创建一个淡入阿瓦不了可以按照指定的时间间隔一个一个显示。顺序播放下面我们就详细介绍一下这两中动画:首先我们介绍 渐变动画:1. Tween Animation1. 渐变动画有四原创 2015-03-30 21:51:09 · 827 阅读 · 0 评论 -
Android中Bitmap位图像素的提取和修改
在Android系统中,假设我们已经取得位图的像素数组pixels。如果要取得相应的透明度、红色分量、绿色分量、蓝色分量,必须通过相应的按位与运算(&)计算得到。既然要进行按位与运算(按位与运算是双目运算符),就是需要2个运算的数据,一个是像素数组的其中一项,一个是16进制数据。如果参与按位与运算的16进制数据为:0X00FFFFFF,表示将透明度的数据清零。如果参与按位与原创 2014-12-05 19:44:28 · 3981 阅读 · 0 评论 -
在Android上为APP虚拟出定时的内存缓存
在项目开发中有一个需求,每次启动APP的时候都需要向服务器请求参数,然后进入到某个界面时直接取出来,而不去请求网络,实现更好的用户体验,但是这些数据只能保存一定时间,而且当APP关闭时,这些数据就得销毁,查了半天API貌似没看到定时缓存(不确定到底有没有),这里就自己模拟了一个,注释已经很详细了。。。看代码:package com.memorycache;import原创 2014-12-05 13:47:59 · 1052 阅读 · 0 评论 -
WindowManager详解
Android的窗口机制基于WindowManager,可以通过它进行窗口控制,添加view到屏幕,或从屏幕删除view。使用时注意控制窗口显示与销毁。 简单的demo代码:1、显示窗口WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);Button view =转载 2014-11-06 10:48:39 · 724 阅读 · 0 评论 -
谈谈Android的密度独立性
前言安卓是一个只对硬件设备限制有很少限制的移动操作系统。生产商们几乎可以创造任何形状的、尺寸的和密度的屏幕的设备。设备可以有物理键盘和按钮或者只有虚 拟键盘和按钮。由于它的设备客制化的自由性给软件开发者们制造了一些麻烦。首先,应用软件怎样在各种各样的设备上保证一致的用户体验呢?其次,应用软件怎 样利用一些拥有高端硬件或者独特特性的设备的优势呢?安卓在当初研发的时候就考虑了这些,给开发者提供翻译 2014-11-02 13:32:29 · 515 阅读 · 0 评论 -
Dalvik和Java字节码的对比
导读:本文主要介绍了Dalvik和Java字节码之间的异同。了解这些异同对于理解Android应用程序的特性,以及分析针对Android应用的恶意行为,都十分重要。Android应用程序通常使用Java语言编写,并在Dalvik虚拟机(DVM)中运行。DVM是一种完全不同于经典Java虚拟机(JVM)的虚拟机机制,它由Google开发,并专门针对移动操作系统(尤其是Android平台)的特转载 2014-10-20 21:13:14 · 658 阅读 · 0 评论 -
Android 内存剖析 – 发现潜在问题
简介移动平台上的开发和内存管理紧密相关。尽管随着科技的进步,现今移动设备上的内存大小已经达到了低端桌面设备的水平,但是现今开发的应用程序对内存的需求也在同步增长。主要问题出在设备的屏幕尺寸上-分辨率越高需要的内存越多。熟悉Android平台的开发人员一般都知道垃圾回收器并不能彻底杜绝内存泄露问题,对于大型应用而言,内存泄露对性能产生的影响是难以估量的,因此开发人员必须要有内存分析的能力。本转载 2014-10-20 21:14:41 · 506 阅读 · 0 评论 -
谈谈android中的jni编程的相关步骤
首先说明,Android系统不允许一个纯粹使用C/C++的程序出现,它要求必须是通过Java代码嵌入Native C/C++——即通过JNI的方式来使用本地(Native)代码。因此JNI对Android底层开发人员非常重要。如何将.so文件打包到.APK让我们 先 从最简单的情况开始,假如已有一个JNI实现——libxxx.so文件,那么如何在APK中使用它呢?原创 2014-11-30 15:22:06 · 507 阅读 · 0 评论 -
如何制作android rom
Android的ROM 首先介绍一下ROM的基本知识,其实按照比较科学的方法来说,Android的“ROM”这种叫法本身就是错误的,只不过是历史遗留的称呼罢了。看看定义吧,所谓的“ROM是只读内存(Read-Only Memory)的简称。ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。ROM所存数据稳定 ,断电后所存原创 2014-11-30 15:28:59 · 1037 阅读 · 0 评论 -
对Fragment切换的优化
在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment:然后总感觉切换的时候有些卡顿,原来的代码/** * 切换页面,这里采用回调 * * @param f */ public void switchFragment(Fragment f) { if (f == null) return; FragmentTransac原创 2014-12-04 15:53:56 · 2364 阅读 · 0 评论 -
Android源码目录结构详解
在学习Android的过程中,学习写应用还好,一开始不用管太多代码,直接调用函数就可以了,但是工作中却需要修改到framework之类的东东所以感觉开始纠结了,又是初学,很多不懂,所以就去找了关于源代码结构介绍的,感觉有很大帮助,所以转载过来分享Android 4.0|-- Makefile|-- bionic (bionic C库)|-- bootable转载 2015-03-30 22:21:36 · 550 阅读 · 0 评论 -
如何实现设计师眼里的虚线
在android中如何实现虚线的绘制原创 2015-05-10 20:38:56 · 952 阅读 · 0 评论 -
RxJava系列之一 初识Rxjava
1.简介基础知识响应式代码的基本组成部分是Observables和Subscribers(事实上Observer才是最小的构建块,但实践中使用最多的是Subscriber,因为Subscriber才是和Observables的对应的。)。 Observable发送消息,而Subscriber则用于消费消息。消息的发送是有固定模式的。Observable可以发送任意数量的消息(包括空消息), 当消原创 2015-08-11 22:28:17 · 1560 阅读 · 2 评论 -
RxJava系列之二 变换类操作符详解1
1.回顾上一篇文章我们主要介绍了RxJava , RxJava 的Observables和 RxJava的just操作符。以及RxJava一些常用的操作。 没看过的抓紧点我去看吧。 其实RxJava有很多的操作符, 而我们学过的just只是创建类操作符的其中一种。以后我会陆续介绍其他的创建类操作符。文章代码地址:https://github.com/jiang111/RxJavaDemo原创 2015-08-24 16:07:54 · 2107 阅读 · 0 评论 -
关于ListView的setEmptyView没效果的问题
使用listView或者gridView时,当列表为空时,有时需要显示一个特殊的empty view来提示用户,一般情况下,如果你是继承ListActivity,只要 TextView tv= new TextView(this); tv.setText("this is a empty view") setEmptyView(tv); 然而运行后并没有什么卵用, 通过一段google, 发现了原创 2015-07-17 09:55:24 · 2256 阅读 · 1 评论 -
android解决部分手机无法通过uri获取到相册的path
/** * 通过uri 获取 文件路径 * * @param imageUri * @return path */ private String getPath(Uri imageUri) { if (imageUri == null) return null; if (android原创 2015-08-06 16:52:44 · 1479 阅读 · 0 评论 -
如何为Recyclerview写一个通用的adapter
如何写一个通用的RecyclerView.adapter项目源码地址:https://github.com/jiang111/RecyclerViewAdapter欢迎star和fork随着需求的不断修改,在项目中越来越流行使用recyclerview。 那么如何构建出一个通用的adapter来提高我们的快速开发能力。 下面我们就来看看如何构建出一个完善的baseadapter。1.分析想要构建原创 2015-12-03 13:43:56 · 1803 阅读 · 2 评论 -
程序员必备的那些Chrome插件
程序员必备的那些Chrome插件原文地址:https://github.com/jiang111/chrome-plugin-recommand收集大家常用的一些Android代码,看这里:https://github.com/jiang111/awesome-android-tips/blob/master/README.md收集Android studio 常用的插件,请看这里:https://原创 2016-05-11 09:24:49 · 21576 阅读 · 1 评论 -
安卓中的Model-View-Presenter模式介绍
这是一篇安卓中MVP模式的详细教程,从最简单的例子到最佳实践。本文还介绍了一个让在安卓中使用MVP模式变得非常简单的library。它是不是很简单,我们如何才能从中获益?什么是MVP.View是指显示数据并且和用户交互的层。在安卓中,它们可以是一个Activity,一个Fragment,一个android.view.View或者是一个Dialog。.Model 是数据源层。比如数据库接口或者远程服务原创 2015-06-12 12:00:30 · 1694 阅读 · 0 评论 -
Snackbar新版Toast 从源码角度完全解析
我们将会从一下几个角度了解Snackbar。1.什么是Snackbar2.如何使用Snackbar3.有哪些常用的API4.从源码角度分析其实现5.总结1.什么是SnackbarSnackbar是一个轻量级的用户操作反馈工具,类似于Toast,但是比Toast更美观和实用,当你操作它的时候,Snackbar会置顶显示一个一定时间的简要的信息在屏幕的底部,并且它还可以添加事件。2.如何使用Snack原创 2015-06-08 22:29:13 · 1998 阅读 · 2 评论 -
LeakCanary:检测你APP所有的内存泄露
LeakCanary:检测你APP所有的内存泄露翻译 2015-05-11 16:46:23 · 924 阅读 · 0 评论 -
Android启动过程深入解析
当按下Android设备电源键时究竟发生了什么? Android的启动过程是怎么样的? 什么是Linux内核? 桌面系统linux内核与Android系统linux内核有什么区别? 什么是引导装载程序? 什么是Zygote? 什么是X86以及ARM linux? 什么是init.rc? 什么是系统服务? 当我们想到Android启动过程时,脑海中总是冒出很多疑问。本文将介绍Andr原创 2015-06-18 14:46:32 · 526 阅读 · 0 评论 -
Android TraceView 最权威的性能分析工具
TraceView是什么Traceview是android平台配备一个很好的性能分析的工具。它可以通过图形化的方式让我们了解我们要跟踪的程序的性能,并且能具体到method。Traceview的作用查看跟踪代码的执行时间,分析哪些是耗时操作 可以用于跟踪方法的调用,尤其是Android Framework层的方法调用关系如何使用TraceView使用TraceView主要有两种方式:最简单的方式就原创 2015-06-18 09:57:54 · 970 阅读 · 0 评论 -
Android 代码性能优化小技巧
这篇文章主要是介绍了一些小细节的优化技巧,当这些小技巧综合使用起来的时候,对于整个App的性能提升还是有作用的,只是不能较大幅度的提升性能而已。选择合适的算法与数据结构才应该是你首要考虑的因素,在这篇文章中不会涉及这方面。你应该使用这篇文章中的小技巧作为平时写代码的习惯,这样能够提升代码的效率。通常来说,高效的代码需要满足下面两个规则:不要做冗余的动作 如果能避免,尽量不要分配内存 代码的执行效原创 2015-06-18 09:00:41 · 502 阅读 · 0 评论 -
判断ListView的每一个item高度
前提 这个item的根view必须是LinearLayoutpackage com.bxg.news.view;import android.view.View;import android.view.ViewGroup;import android.widget.ListAdapter;import android.widget.ListView;public class Utility原创 2015-02-28 12:47:04 · 2206 阅读 · 0 评论 -
安卓中的Model-View-Presenter模式介绍
英文原文:Introduction to Model-View-Presenter on Android 这是一篇观点比较激进的文章,完全否定了MVC模式在安卓开发的中的意义,认为其是没有任何用处的。这篇文章因为使用了静态变量来定义Presenter,因此在原文的评论部分也受到一些争议。不过我觉得还是从中学到了一些思想。我甚至同意MVC模式在安卓开发的中毫无意义的说法。没有完美的文章。另外关于MV原创 2015-05-24 16:45:05 · 1072 阅读 · 0 评论 -
利用反射获取GridView的高度
本篇文章基于 之前的一篇判断ListView的每一个item高度直接复用上一篇文章中的setListViewHeightBasedOnChildren方法,当初是使用gridView.getNumColumns();方法,获取gridview的列数,但是当我断点看的时候,发现值一直是-1, 而gridview中的mRequestedNumColumns字段反而是正常的, 看看gridview的源码中原创 2015-05-27 12:45:34 · 1788 阅读 · 0 评论 -
点击事件(多击事件的实现)
1,点击事件与触摸事件的区别?onTouch()的返回值:true: 在当前就消费掉false: 先看他的子集中有没有响应(点击事件),无响应则消费触摸事件,有响应则消费为点击事件2,双击事件普通实现:原创 2014-10-10 08:40:54 · 618 阅读 · 0 评论 -
Android NDK介绍
导读为了在Android OS系统上开发应用程序,Google提供了两种开发包:SDK和NDK。你可以从Google官方查阅到有许多关于SDK的优秀的书籍、文章作为参考,但Google没有提供足够的NDK资料。在现有的书籍中,我认为Cinar O.写于2012年的”Pro Android C++ with the NDK”值得一读。本文旨在帮助那些缺乏Android NDK经验但又转载 2014-10-20 21:05:51 · 506 阅读 · 0 评论 -
Android 手机自动化测试工具有哪几种?
Sikuli (http://sikuli.org),基于优秀的图像对比库opencv的测试工具,测试脚本使用Python编写,非常强大。如果你的app没有源码,可以选择它;或者你想做系统测试(跨app的测试),也可以选择它。其它的还是用下面说的那些个吧应用层的 先说说开源的吧:RobotiumMonkeyrunnerRobolectricCTS还有个新兴的测试工具,以原创 2014-10-24 22:24:54 · 1028 阅读 · 0 评论 -
Android:一个高效的UI才是一个拉风的UI(一)
首页最新文章在线课程业界开发IT技术设计创业IT职场在国外频道更多 >- 导航条 -首页最新文章在线课程业界开发IT技术- Linux- UNIX- MySQL- NoSQL- 数据库- Git- 算法- 测试- 信息安全- Vim设计- 网页设计- UI设计- 交互设计- 用户体验创业IT职场在国转载 2014-10-27 13:16:42 · 478 阅读 · 0 评论 -
谈一谈安卓应用中的Toast
Toast,这个曾经也是现在正在迷倒万千软件开发者尤其是android开发者的小美女,向来不乏在各个明星应用中频繁登场。Toast是神马~听说是一种吐司面包,能吃吗?如果手机屏幕是巧克力做的,我觉得兴许味道还不错的说。言归正传,先来说一说Toast的应用场景,毕竟Toast哥也是见过大场面的人儿了。张三正打算拿在移动互联网上冲一个浪,突然Toast一个:“网络不给力啊,我都拿不到数据了”;李四要安转载 2014-10-27 21:44:17 · 605 阅读 · 0 评论