
android
文章平均质量分 96
那块代码没问题
这个作者很懒,什么都没留下…
展开
-
android热修复技术 HotFix
功能实现:将代码有bug的类通过热修复技术动态替换的效果demo下载地址:里面有所以代码以及patch包运行即可http://download.youkuaiyun.com/detail/h291850336/9911383基本介绍:android的Dalvik/ART虚拟机虽然与标准Java的JVM虚拟机不一样,ClassLoader具体的加载细节不一样,但是工作机制是类似的,也就是说在原创 2017-07-26 16:10:06 · 709 阅读 · 0 评论 -
贝塞尔曲线
Bézier curve(贝塞尔曲线)是应用于二维图形应用程序的数学曲线。 曲线定义:起始点、终止点(也称锚点)、控制点。通过调整控制点,贝塞尔曲线的形状会发生变化。 1962年,法国数学家Pierre Bézier第一个研究了这种矢量绘制曲线的方法,并给出了详细的计算公式,因此按照这样的公式绘制出来的曲线就用他的姓氏来命名,称为贝塞尔曲线。 以下公式中:B(t)为t转载 2016-02-26 15:06:53 · 689 阅读 · 0 评论 -
SVG动画演示贝塞尔曲线(1-4阶)绘制过程
贝塞尔曲线是我们大陆的叫法,英文名是Bézier Curve,港澳台称为貝茲曲線,新加坡马来西亚称为贝济埃曲线。先看一下效果图: 维基百科中的贝塞尔曲线条目中的几个GIF动画很漂亮,顺路贴上来。转载 2016-02-26 14:51:47 · 1077 阅读 · 0 评论 -
android jni基本使用方式
JNI是Java Native Interface的缩写,它提供了若干的API实现了Java和其他语言的通信(主要是C&C++)一旦使用JNI,JAVA程序就丧失了JAVA平台的两个优点:1、程序不再跨平台。要想跨平台,必须在不同的系统环境下重新编译本地语言部分。2、程序不再是绝对安全的,本地代码的不当使用可能导致整个程序崩溃。一个通用规则是,你应该让本地方法集中在少数几个类当中。这样就降低了原创 2016-03-21 09:37:09 · 1717 阅读 · 0 评论 -
Android Weak Handler:可以避免内存泄漏的Handler库
android使用java作为其开发环境。java的跨平台和垃圾回收机制已经帮助我们解决了底层的一些问题。但是尽管有了垃圾回收机制,在开发android的时候仍然时不时的遇到out of memory的问题,这个时候我们不禁要问,垃圾回收机器去哪儿了?我们主要讲的是handler引起的泄漏,并给出三种解决办法,其中最后一种方法就是我们想介绍的WeakHandler 库。可能导致泄漏转载 2016-02-23 13:48:21 · 688 阅读 · 0 评论 -
Android M 新的运行时权限开发者需要知道的一切
原文出处:http://jijiaxin89.com/2015/08/30/Android-s-Runtime-Permission/ android M 的名字官方刚发布不久,最终正式版即将来临!android在不断发展,最近的更新 M 非常不同,一些主要的变化例如运行时权限将有颠覆性影响。惊讶的是android社区鲜有谈论这事儿,尽管这事很重要或许在不远的将来会引发很严重的问题。转载 2016-03-08 10:43:12 · 799 阅读 · 0 评论 -
基于xmpp openfire smack开发之smack类库介绍和使用
关于Smack编程库,前面我们提到,它是面向Java端的api,主要在PC上使用,利用它我们可以向openfire服务器注册用户,发送消息,并且可以通过监听器获得此用户的应答消息,以及构建聊天室,分组,个人通讯录等等。下面我们写几个程序小例子测试一下。(1)登录操作[java] view plain copyPPConnectio转载 2016-03-03 17:26:35 · 1078 阅读 · 0 评论 -
浅析 Android 的窗口
浅析 Android 的窗口原创 2016-02-01 谢丽君 腾讯Bugly一、窗口的概念在开发过程中,我们经常会遇到,各种跟窗口相关的类,或者方法。但是,在 Android 的框架设计中,到底什么是窗口?窗口跟 Android Framework 中的 Window 类又是什么关系?以手机QQ 的主界面为例,如下图所示,上面的状态栏是一个窗口,手机QQ 的主转载 2016-02-02 09:57:13 · 1336 阅读 · 0 评论 -
Android为什么要设计出Bundle而不是直接使用HashMap来进行数据传递
1.Bundle内部是由ArrayMap实现的,ArrayMap的内部实现是两个数组,一个int数组是存储对象数据对应下标,一个对象数组保存key和value,内部使用二分法对key进行排序,所以在添加、删除、查找数据的时候,都会使用二分法查找,只适合于小数据量操作,如果在数据量比较大的情况下,那么它的性能将退化。而HashMap内部则是数组+链表结构,所以在数据量较少的时候,HashMap的En转载 2016-01-14 10:52:40 · 3831 阅读 · 0 评论 -
Android中RelativeLayout和LinearLayout性能分析
Android中RelativeLayout和LinearLayout性能分析字数2807 阅读205 评论2 喜欢10先看一些现象吧:用eclipse或者Android studio,新建一个Activity自动生成的布局文件都是RelativeLayout,或许你会认为这是IDE的默认设置问题,其实不然,这是由 android-sdk\tools\templates\act转载 2016-01-14 10:13:34 · 2368 阅读 · 0 评论 -
app引导页
app引导页是什么?哈哈,你可能会问我,“你确定这个小节不是用来凑字数的么?”,怎么会呢,这篇文章的标题叫“干货”,言归正传,请用一句话描述你印象中的引导页。“第一次安装app的时候出现”、“每次更新以后出现”、“要滑好几次才能跳过”、“更新完竟然让我看个视频”、“无能的产品经理喜欢干这个事情,还有一个就是各种弹出框的功能引导”、“点不完的‘知道了’按钮”、“根本没人会认真看,而且特别碍事转载 2016-01-13 18:25:47 · 1863 阅读 · 0 评论 -
Android static 内存优化
在Android开发中,我们经常会使用到static来修饰我们的成员变量,其本意是为了让多个对象共用一份空间,节省内存,或者是使用单例模式,让该类只生产一个实例而在整个app中使用。然而在某些时候不恰当的使用或者是编程的不规范却会造成了内存泄露现象(java上的内存泄漏指内存得不到gc的及时回收,从而造成内存占用过多的现象) 本文中我们主要分析的是static变量对activtiy的不转载 2016-01-13 18:10:52 · 606 阅读 · 0 评论 -
Volley 实现原理解析(转)
Volley 实现原理解析本文为 Android 开源项目实现原理解析 中 Volley 部分项目地址:Volley,分析的版本:35ce778,Demo 地址:Volley Demo分析者:grumoon,校对者:huxian99,校对状态:完成1. 功能介绍1.1. VolleyVolley 是 Google 推出的 Android转载 2016-01-13 14:18:02 · 813 阅读 · 0 评论 -
android TouchImageView 进阶
实现图片放大缩小控制按钮进行大小缩放,双击放大缩小,移动,多点(两点)缩放功能 DrawImageLayout 包含多张图片,可选择不同图片进行操作部分代码:<DrawImageLayout android:id="@+id/template_main" android:layout_width="match_parent转载 2016-01-11 17:24:10 · 1731 阅读 · 0 评论 -
Android Studio代码调试技巧篇
ndroid Studio目前已经成为开发Android的主要工具,用熟了可谓相当顺手。作为开发者,调试并发现bug,进而解决,可是我们的看家本领。正所谓,工欲善其事必先利其器,和其他开发工具一样,如Eclipse、Idea,Android Studio也为我们提供了强大的调试技巧,今天我们就来看看Android Studio中有关调试的技巧。首先,来看看Android studio中转载 2016-06-02 11:31:26 · 5458 阅读 · 0 评论 -
Android View绘制
1.view的绘制流程分几步,从哪开始?哪个过程结束以后能看到view?答:从ViewRoot的performTraversals开始,经过measure,layout,draw 三个流程。draw流程结束以后就可以在屏幕上看到view了。2.view的测量宽高和实际宽高有区别吗?答:基本上百分之99的情况下都是可以认为没有区别的。有两种情况,有区别。第一种 就是有的时候会转载 2016-07-14 11:08:45 · 663 阅读 · 0 评论 -
retrofit2源码分析
Retrofit官网 http://square.github.io/retrofit/分析源码基本上都是从demo开始的首先知道如何调用官网首页给的例子1.先定义一个接口首页api声明中明确指出每个接口方法必须包含http请求方法注解GET, POST, PUT, DELETE, and HEAD,并且可以加入请求参数具体 @Path @QueryMap @FormU原创 2017-03-27 17:15:49 · 925 阅读 · 0 评论 -
Android源码分析—带你认识不一样的AsyncTask
前言什么是AsyncTask,相信搞过android开发的朋友们都不陌生。AsyncTask内部封装了Thread和Handler,可以让我们在后台进行计算并且把计算的结果及时更新到UI上,而这些正是Thread+Handler所做的事情,没错,AsyncTask的作用就是简化Thread+Handler,让我们能够通过更少的代码来完成一样的功能,这里,我要说明的是:AsyncTask只是简化转载 2017-02-24 21:45:34 · 356 阅读 · 0 评论 -
让AlertDialog在按钮被点击后不消失
在网上搜索了一下,发现有两种做法:第一:使用反射:在你的setPositiveButton中添加://用于不关闭对话框try { Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing"); field.setAccessible(true); field.set(dial原创 2017-02-24 21:42:40 · 694 阅读 · 0 评论 -
android对TimePickerDialog进行监听 onTimeSet会执行两次!
此问题在android4.0以上存在,android2.3中没有源码中,点击确定和取消按钮时,会出发onTimeSet;在dialog的onStop(比如dialog dismiss时)中,也调用了onTimeSet方法。解决办法:Calendar c = Calendar.getInstance();c.add(Calendar.DAY_OF_YEAR, 1);原创 2017-02-24 21:41:17 · 739 阅读 · 0 评论 -
调用startActivityForResult,onActivityResult无响应的问题
1、执行startActivityForResult,没等到被调用的 Activity 返回,onActivityResult() 就被执行了。找了很久,终于通过小道消息得知,这与 Activity 的加载模式(launchMode)有关,该属性可以在 AndroidManifest.xml 中设置。原先将其设为 singleInstance,经测试,所有需要传递或接收的 Activity转载 2017-02-24 21:36:54 · 384 阅读 · 0 评论 -
异步任务AsyncTask
一、AsyncTask:(一)、相关知识回顾:1、开发Android应用时必须遵守单线程模型的原则: Android UI操作并不是线程安全的,并且这些操作必须在UI线程中执行。2、单线程模型中始终要记住两条法则:原创 2017-02-24 21:32:34 · 384 阅读 · 0 评论 -
android项目框架结构实现、封装、继承
在项目开发时如果app大部分界面的风格类似以及界面转场动画相同,例如统一样式的titlebar和bottomBar,沉浸样式,中间部分是内容,处理网络异常和没有数据时的显示样式风格相同,那么可以将不变的部分封装到某个activity中,通过继承去现实不同数据在基础activity中实现沉浸样式public class BaseActivity extends AppCo原创 2017-02-28 17:59:34 · 789 阅读 · 0 评论 -
android项目框架MVP
MVP 全称:Model-View-Presenter ;MVP 是从经典的模式MVC演变而来,它们的基本思想有相通的地方:Controller/Presenter负责逻辑的处理,Model提供数据,View负责显示。优点:1、模型与视图完全分离,我们可以修改视图而不影响模型2、可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部3、我们可以将一个Pres原创 2017-02-28 16:21:25 · 596 阅读 · 0 评论 -
ffmpeg 的编译选项
ffmpeg xxxx$ ./configure --helpUsage: configure [options]Options: [defaults in brackets after descriptions]Help options: --help print this message --list-decoders翻译 2016-08-18 17:33:33 · 5217 阅读 · 0 评论 -
java Lambda exp Aggregate聚合总体 Operations Reduction
The section Aggregate Operations describes the following pipeline of operations, which calculates the average age of all male members in the collection roster:double average = roster .stream()翻译 2016-07-21 14:25:47 · 635 阅读 · 0 评论 -
java Lambda exp Aggregate聚合总体 Operations
For what do you use collections? You don't simply store objects in a collection and leave them there. In most cases, you use collections to retrieve取回检索 items stored in them.Consider again the scena翻译 2016-07-21 11:36:48 · 673 阅读 · 0 评论 -
java Lambda expressions Method References
Method ReferencesYou use lambda expressions to create anonymous methods. Sometimes, however, a lambda expression does nothing but call an existing method. In those cases, it's often clearer to ref翻译 2016-07-21 10:35:36 · 603 阅读 · 0 评论 -
java Lambda expressions basic
One issue with anonymous(匿名的) classes is that if the implementation of your anonymous class is very simple, such as an interface that contains only one method, then the syntax of anonymous classes may翻译 2016-07-21 09:44:23 · 713 阅读 · 0 评论 -
android 羊角符号(¥)在不同手机上显示不同
问题,部分手机显示为单个横1.设置字体加粗,即可解决但是不美观2.自定义字体3.svg4.直接使用图片原创 2016-06-17 15:00:02 · 7288 阅读 · 0 评论 -
android TouchImageView 初级篇
实现浮现放大缩小控制按钮进行大小缩放,双击放大缩小,移动,多点(两点)缩放功能https://github.com/MikeOrtiz/TouchImageView <com.example.touch.TouchImageView android:layout_width="match_parent" android:转载 2016-01-11 16:34:43 · 1917 阅读 · 0 评论 -
Android Matrix详解
Matrix的数学原理平移变换旋转变换缩放变换错切变换对称变换代码验证 Matrix的数学原理在Android中,如果你用Matrix进行过图像处理,那么一定知道Matrix这个类。Android中的Matrix是一个3 x 3的矩阵,其内容如下: Matrix的对图像的处理可分为四类基本变换:Tran转载 2016-01-11 16:22:35 · 509 阅读 · 0 评论 -
Android中moveTo、lineTo、quadTo、cubicTo、arcTo详解
1、Why最近在写android画图经常用到这几个什么什么To,一开始还真不知道cubicTo这个方法,更不用说能不能分清楚它们了,所以特此来做个小笔记,记录下moveTo、lineTo、quadTo、cubicTo、arcTo的作用,在自定义view的时候经常用到。接下来也会分享下这几天写的几个东西。相信对于新手也会有点帮助,高手也帮忙看看有没错,欢迎吐槽吐槽。2、moveT转载 2016-01-18 15:18:37 · 657 阅读 · 0 评论 -
android 跑马灯效果
修改界面跳转后跑马灯线程停止问题package com.sunarvr.artist.view;import android.content.Context;import android.content.res.AssetManager;import android.graphics.Canvas;import android.graphics.Color;import a原创 2015-12-29 10:12:52 · 721 阅读 · 0 评论 -
android 通用view封装
分装某个view 实现通用界面和点击事件等public class PayResultView extends RelativeLayout { private Context context; private ImageView logo; private TextView pay_result_tips; private TextView company_p原创 2015-12-29 10:00:36 · 702 阅读 · 0 评论 -
Toast和Looper、Handler消息循环机制
(1) Looper类别用来为一个线程开启一个消息循环。默认情况下Android中新诞生的线程是没有开启消息循环的。(主线程除外,主线程系统会自动为其创建Looper对象,开启消息循环)Looper对象通过MessageQueue来存放消息和事件。一个线程只能有一个Looper,对应一个MessageQueue。(2) 通常是通过Handler对象来与Looper交互的转载 2015-12-28 19:16:49 · 564 阅读 · 0 评论 -
Android 编程下的代码混淆
什么是代码混淆Java 是一种跨平台的、解释型语言,Java 源代码编译成中间”字节码”存储于 class 文件中。由于跨平台的需要,Java 字节码中包括了很多源代码信息,如变量名、方法名,并且通过这些名称来访问变量和方法,这些符号带有许多语义信息,很容易被反编译成 Java 源代码。为了防止这种现象,我们可以使用 Java 混淆器对 Java 字节码进行混淆。混淆就是对发布出去转载 2015-10-29 11:23:37 · 531 阅读 · 1 评论 -
android事件分发
Touch事件分发中只有两个主角:ViewGroup和View。Activity的Touch事件事实上是调用它内部的ViewGroup的Touch事件,可以直接当成ViewGroup处理。View在ViewGroup内,ViewGroup也可以在其他ViewGroup内,这时候把内部的ViewGroup当成View来分析。ViewGroup的相关事件有三个:onInterceptT转载 2015-10-27 13:34:48 · 508 阅读 · 0 评论 -
Android内存管理整理
相信一步步走过来的Android从业者,每个人都会遇到OOM的情况。如何避免和防范OOM的出现,对于每一个程序员来说确实是一门必不可少的能力。今天我们就谈谈在Android平台下内存的管理之道,开始今天的主题之前,先再次回顾两个概念。内存泄漏:对象在内存heap堆中中分配的空间,当不再使用或没有引用指向的情况下,仍不能被GC正常回收的情况。多数出现在不合理的编码情况下,比如在Activit转载 2015-10-23 16:30:37 · 732 阅读 · 1 评论 -
android httpclient基本用法
android httpclient常用的post get delete put 方法简单使用传值方式:文本键值对格式 和 json格式/** * 通过Put方式发送请求 更新采集器信息 * @param url URL地址 * @param params 参数 * @return * @throws Exception */ p原创 2015-10-21 09:29:09 · 3175 阅读 · 0 评论