android提高
文章平均质量分 62
有心好书
种一棵树最好的时间是十年前,其次是现在
展开
-
Android Context的几点看法
Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(转载 2015-05-04 20:36:17 · 1254 阅读 · 0 评论 -
【Fragment精深系列8】Fragment对自身事件的处理
Fragment自身的事件处理,不一定非要使用接口回调,在activity中实现具体的处理方法。如果事件处理比较简单,Fragment本身就可以处理,比如Fragment的上下文菜单的处理,简单的话,就不需要使用接口回调。下面就是一个简单的使用接口回调的案例:案例:处理fragment中的popupmenu点击事件,跳转到其他的activityfragment的代码:package com.ht.p原创 2015-05-27 09:18:25 · 3108 阅读 · 0 评论 -
【Fragment精深系列4】Fragment与Activity之间的数据交互
一、Activity把值传递给Fragment 在activity中创建bundle数据包,并调用fragment的setArguments(Bundle bundle)方法,即可将Bundle数据包传给fragment。在Fragment中用getArguments方法得到传递过来的值。二、Fragment把值传递给Activity 在fragment中定义一个内部回调接口,再让包含该frag原创 2015-05-26 09:21:25 · 18070 阅读 · 6 评论 -
【Fragment精深系列6】关于FragmentManager动态管理Fragment时Fragment生命周期的探究
转载自:http://www.php100.com/html/it/biancheng/2015/0120/8419.html Fragment是Android中的重要组件,在Android 3.0的时候添加进来。 关于Fragment的生命周期,我相信了解过的开发人员都应该把以下方法脱口而出:onAttach, onCreate, onCreateView, onViewCreated, on转载 2015-05-26 22:41:07 · 1839 阅读 · 0 评论 -
【Fragment精深系列9】Fragment vs Activity
1、fragment对于自身事件的处理,有的时候需要借助activity,使用接口回调。2、fragment的生命周期收activity的影响。3、findviewbyid的方式不同。4、fragment的回退栈中存的是事务,而activity的任务栈中存的是activity对象。fragment的回退栈的管理由与他绑定的activity来负责管理,程序中必须显示的调用addToBackStack才原创 2015-05-27 13:17:53 · 1327 阅读 · 0 评论 -
android网络应用开发完全解析
Android网络应用开发,主要有两种方式,一种是socket(是对tcp/udp协议的封装),另外一种就是使用Http协议,Android中主要提供了两种方式,HttpURLConnection和Apache HttpClient。下面对Android网络应用开发进行具体的阐述。一、基于socket的网络通信socket是为了网络服务提供的一种机制。通信的两端都是socket。网络通信其实就是so原创 2015-05-27 22:08:41 · 1601 阅读 · 0 评论 -
浅析android系统设计中的回调思想
为何写作本文 在慢慢深入接触android开发的过程中,我越来越发现android中(至少应用曾的开发)用到了很多回调的思想。比如activity的生命周期,fragment的生命周期,皆是回调函数实现的,android中的事件处理机制其一就是回调,线程方面的异步任务、loader、hanlder等都是基于回调的,等等。 可见android的其一根本思想就是回调,需要你来参与时,回调用相关的回调原创 2015-05-22 20:06:51 · 4491 阅读 · 1 评论 -
service学习,一篇就够
Android中程序与Service交互的方式——综述:http://blog.csdn.net/yihongyuelan/article/details/7215990Android中程序与Service交互的方式——交互方式:http://blog.csdn.net/yihongyuelan/article/details/7216188Android中程序与Service交互的方式——总结:h原创 2015-05-14 19:55:56 · 1109 阅读 · 0 评论 -
白话计算机图形学初步-由一个小问题引发的故事
为何写本文 今天在学习android时遇到的一个问题:android程序从网络得到一张图片,显示在程序的imageview中,期间调用了bitmap把字节数组转化成位图文件,才能显示,自己对此很困惑:为何我们得到字节数组之后不能直接显示呢,而是要通过bitmap才可以显示?因此查了很多资料,有了一个初步的概念,另本文只做感性的理解,有一些地方表述的可能有问题,望读者见谅。引入 你知道我们打开电脑原创 2015-04-24 15:59:29 · 2321 阅读 · 0 评论 -
android中子线程更新UI的方式浅析
一、为何写作此文 你是不是经常看到很多书籍中说:不能在子线程中操作ui,不然会报错。你是不是也遇到了如下的疑惑(见下面的代码):@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentV原创 2015-05-23 23:44:26 · 4649 阅读 · 0 评论 -
【Fragment精深系列5】fragment findViewById()返回null完全解析
一、引入 你是不是经常遇到在fragment中调用findViewById方法寻找fragment布局文件中的控件返回null的现象。我之前也遇到了这个问题,虽然后来解决了,但是心中一直有疑惑,最近有时间停下来,结合别人的解答和自己的思考,对这个问题进行彻底的梳理。二、使用getActivity().findViewById1、getActivity的介绍 Fragment中有一个getActi原创 2015-05-26 19:14:10 · 19558 阅读 · 7 评论 -
android知识网
android知识网原创 2015-07-12 20:06:37 · 1516 阅读 · 1 评论 -
ListView优化完全解读
一、复用view二、使用viewholder并且最好是静态内部类。静态内部类,不持有外部类的引用,避免内存泄露…effective java中有提到过,static class的适用场景,主要作用是为了减少大量内部类都各自持有外部类引用带来的内存开销非static内部类会持有外部类的引用,这样就会涉及到外部类的释放依赖内部类。如果内部类过多的引用外部类的话,这样很容易造成外部类得不到释放。三、lis原创 2015-07-18 22:27:47 · 6220 阅读 · 1 评论 -
volley完全解析
一、volley是什么?1、简介 Volley是Goole在2013年Google I/O大会上推出了一个新的网络通信框架,它是开源的。从名字由来和配图中无数急促的火箭可以看出 Volley 的特点:特别适合数据量小,通信频繁的网络操作。(个人认为 Android 应用中绝大多数的网络操作都属于这种类型)。 Volley加载图片实现了两级缓存(网络缓存、文件缓存),没有实现内存的缓存。Volle原创 2015-06-27 22:17:21 · 6665 阅读 · 1 评论 -
android虚拟机详解
android5.0之前使用的虚拟机是Dalvik虚拟机,这个虚拟机在JVM的基础上做了一定的优化。android5.0之后,android采用了新的虚拟机ART,本文主要对Dalvik、JVM、ART之间进行对比。一.Dalvik虚拟机1.概念 Dalvik虚拟机是Android程序的虚拟机,是Android中Java程序的运行基础。其指令集基于寄存器架构,执行其特有的文件格式——dex字节码来转载 2016-02-28 17:52:26 · 6051 阅读 · 0 评论 -
android的编译和运行过程深入分析
首先来看一下使用Java语言编写的Android应用程序从源码到安装包的整个过程,此过程对了解android的编译和运行过程有很大的帮助Android 编译打包apk的流程 首先来看一下使用Java语言编写的Android应用程序从源码到安装包的整个过程,示意图如下,其中包含编译、链接和签名等:(1)使用aapt工具生成R.java文件 可以先通过搭建好的Eclipse开发环境创建一转载 2016-02-28 17:51:50 · 2401 阅读 · 0 评论 -
android内存泄露分析工具MAT详解
一.准备1.什么是MAT Eclipse提供的一个内存分析工具。它是一个功能丰富的 JAVA 堆转储文件分析工具,可以帮助你发现内存漏洞和减少内存消耗。 android studio未集成该插件 需要你下载独立版 android studio的DDMS可以生成hprof是什么文件,不过需要进行一下格式转化(.hprof文件从Dalvik格式转换成J2SE HPROF格式),才可以原创 2016-02-28 17:55:45 · 1488 阅读 · 0 评论 -
ListView用单行刷新取代notifyDataSetChanged
listview单行刷新的解决方案原创 2016-05-07 18:24:45 · 2343 阅读 · 0 评论 -
警告handler leaks的解决方法
发现所有的Handler都被打上了”This Handler class should be static or leaks might occur ..”的警告, Google一番后发现了解决方法. 一.原因找到一段E文 Issue: Ensures that Handler classes do not hold on to a reference to an outer class 确保H原创 2016-05-25 17:46:27 · 4614 阅读 · 1 评论 -
View/ViewGroup的"生命周期"
view的生命周期转载 2016-04-22 14:44:26 · 1583 阅读 · 0 评论 -
MAC下如何把android源码导入到eclipse中阅读查看
Android源码下载完成的目录结构如如所示:step1:将.classpath文件拷贝到源代码的根目录 Android源码支持多种IDE,如果是针对APP层做开发的话,建议大家使用Eclipse开发环境。在源码路径(~/development/ide/eclipse)下,Android提供了.classpath配置文件(备注:该文件为隐藏文件)。step2、在源码的根目录创建.project文件原创 2016-05-13 12:05:15 · 1730 阅读 · 0 评论 -
android系统目录说明
一.图示 差一个linux的文件结构二.各目录简介 以上是 Android 根目录下文件目录,根据之前的分区结构可以大致看出每个目录的所处位置和大致功能, 以下是几个重要目录/文件的说明:mnt:挂载点目录,sdcard在改目录下etc:系统主要配置文件system:Android 系统文件sys:Linux 内核文件proc:运行时文件init.rc:启动脚本default.p原创 2016-04-20 21:00:14 · 1369 阅读 · 0 评论 -
android实现进程间通信(IPC)的方式
android实现ipc的方案原创 2016-04-23 16:22:39 · 937 阅读 · 0 评论 -
startActivityForResult和setResult详解
startActivityForResult与startActivity的不同之处在于: 1. startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( )。 2. startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Acti原创 2016-05-18 13:24:56 · 1929 阅读 · 1 评论 -
实现View滑动的七种方法
实现View滑动的七种方法原创 2016-06-01 09:33:21 · 1066 阅读 · 0 评论 -
大众点评、百度外卖类滑动悬浮停止效果实现
大致效果如下:当向上滚动的输入框悬浮停止在顶部,向下滚动到一定距离以后输入框恢复到原来的位置。一.原理: 获取滚动控件滚动的距离,然后根据距离来控制悬浮框的隐藏和显示。二.如果外层是ScrollView1.ScrollView/* * ScrollView并没有实现滚动监听,所以我们必须自行实现对ScrollView的监听, * 我们很自然的想到在onTouchEvent()方法中实现对滚动Y原创 2016-06-02 21:24:24 · 3040 阅读 · 0 评论 -
getCacheDir()、getFilesDir()、getExternalFilesDir()、getExternalCacheDir()的作用
一.getCacheDir、getCacheDir getCacheDir()方法用于获取/data/data//cache目录 getFilesDir()方法用于获取/data/data//files目录二.getExternalFilesDir、getExternalCacheDir 应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的。大部分应用是直转载 2016-05-21 16:06:05 · 30942 阅读 · 2 评论 -
Scroller使用分析
Scroller使用分析原创 2016-05-31 20:27:58 · 1410 阅读 · 0 评论 -
android实现弹窗的方式汇总
近期公司人事调整,自己也从之前的基础部门转到了商业产品部门,整体的业务有了不小的变动,最近阅读相关业务代码的时候,发现商业方向的产品需求较多的涉及android的弹窗,所以自己有必要在这里做以总结和整理。 android中实现弹窗的方式如下:一.Dialog不设置style,默认的样式很丑。一个小例子:public class LoadingDialog extends android.app.原创 2016-06-02 13:55:26 · 18456 阅读 · 1 评论 -
【Fragment精深系列7】Fragment切换优化
一、Fragment+RadioGroup 在项目中需要进行Fragment的切换,一直都是用replace()方法来替换Fragment:然后总感觉切换的时候有些卡顿。1、以前的代码: radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() { @Overr原创 2015-05-27 00:10:06 · 17088 阅读 · 2 评论 -
【android内核剖析笔记】APK程序的运行过程
首先,ActivityThread从main()函数中开始执行,调用prepareMainLooper()为UI线程创建一个消息队列(MessageQueue)。 然后创建一个ActivityThread对象,在ActivityThread的初始化代码中会创建一个H(Handler)对象和一个ApplicationThread(Binder)对象。其中Binder负责接受远程AMS的IPC调用,接收原创 2016-06-07 09:39:52 · 796 阅读 · 0 评论 -
android开发调试工具一览
android开发中,解决bug有很多优秀的工具,现列举如下:一.charles:网络抓包神器专解各种网络解析错误等网络异常二.androidstudio debug1.选择你的进程2.打断点选择一个好的断点是非常重要的。3.调试工作台说明4.如何看一些值三.Log日志输出最笨,却是最有效的四.使用Android Lint来检查代码原创 2016-05-17 20:55:30 · 939 阅读 · 0 评论 -
android坐标
android中的坐标系在Android系统中,屏幕的左上角是坐标系统的原点(0,0)坐标。原点向右延伸是X轴正方向,原点向下延伸是Y轴正方向。获取绝对坐标的方法getLocationOnScreen ,计算该视图在全局坐标系中的x,y值,(注意这个值是要从屏幕顶端算起,也就是索包括了通知栏的高度)//获取在当前屏幕内的绝对坐标 getLocationInWindow ,计算该视图在它所在的wi原创 2016-06-01 19:35:39 · 1436 阅读 · 0 评论 -
【分享笔记】使用lint来改善你的代码
一.lint简介什么是静态代码分析静态代码分析是指无需运行被测代码,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性,找出代码隐藏的错误和缺陷,如参数不匹配,有歧义的嵌套语句,错误的递归,非法计算,可能出现的空指针引用等等。在软件开发过程中,静态代码分析往往先于动态测试之前进行,同时也可以作为制定动态测试用例的参考。统计证明,在整个软件开发生命周期中,30% 至 70% 的代码逻辑原创 2016-06-22 22:22:04 · 2010 阅读 · 0 评论 -
【分享笔记】android6.0特性
Android 6.0中权限分为两种,普通权限和危险权限普通权限(Normal Permissions)如果你的应用manifest中只申明了普通权限(也就是说,这些权限对于用户隐私和设备操作不会造成太多危险,比如手机震动、访问网络等),系统会自动授予这些权限。 普通权限的覆盖区域是在你的app需要访问沙盒以外的数据和资源的时候,但是对用户隐私和其他app的操作只有很少的影响,比如开启手电筒的权限原创 2016-06-17 14:49:46 · 918 阅读 · 0 评论 -
android进阶之路:大牛问答
Q:最近看到很多文章都在说MVP怎么怎么好,还有MVVM啥的 最近看到很多文章都在说MVP怎么怎么好,还有MVVM啥的,请问你认为哪个比较适合android,而你现在采用的是哪些模式呢? 【郭霖】A:郭霖 对于这个问题,我还是有点心得的。像MVP这种架构模式,肯定是有它的意义的,它提供了一种设计规范,让我们能把业务逻辑从Activity中提取出来,让代码看起来更工整,这里先给个肯定原创 2016-05-13 14:10:20 · 1120 阅读 · 0 评论 -
Android源码解析——LruCache
LRU 在读LruCache源码之前,我们先来了解一下这里的Lru是什么。LRU全称为Least Recently Used,即最近最少使用,是一种缓存置换算法。我们的缓存容量是有限的,它会面临一个问题:当有新的内容需要加入我们的缓存,但我们的缓存空闲的空间不足以放进新的内容时,如何舍弃原有的部分内容从而腾出空间用来放新的内容。解决这个问题的算法有多种,比如LRU,LFU,FIFO等。 需要注意转载 2016-06-28 10:52:01 · 716 阅读 · 0 评论 -
androidstudio使用指南
1、androidstudio导入第三方开源项目向基于Android Studio构建的项目中导入开源库: http://mobile.51cto.com/aprogram-464018.htm2、Android-Studio 缓存文件夹配置http://www.bubuko.com/infodetail-665030.html3、androidstudio基于的是idea的平台,所以各种设置与i原创 2015-06-17 16:50:43 · 1300 阅读 · 0 评论 -
android上传下载系列:断点下载分析
断点续传下载,顾名思义,那就是我们在一次下载未结束时,退出下载,第二次下载时会接着第一次下载的进度继续下载。http请求的时候加入头域RANGE (RANGE: bytes=100000-200000)详细使用方法请看http协议。这样就可以指定获取的文件的起始位置和结束位置,如果下载视频文件最好能先获取文件的属性信息再分块,多个请求同时下载,比如100M的文件可以分为100个1M的块,5个请求同时下原创 2016-08-02 21:34:24 · 920 阅读 · 0 评论 -
android上传下载系列:如何优化上传的性能
如何优化文件上传性能?对于文件上传性能优化,可以从两个方面来着手,即上传前的优化和上传过程中的优化。原创 2016-08-02 21:35:41 · 5489 阅读 · 1 评论