
Android
文章平均质量分 93
不服老的码农
业精于勤,荒于嬉;行成于思,毁于随
展开
-
JAVA和Android序列化技术详解
文章目录什么是序列化为什么需要序列化Java的序列化Android的序列化什么是序列化为什么需要序列化Java的序列化Android的序列化高性能rpc 的关键技术之一 就是高效的对象序列化机制。传统java的序列化机制。有两个问题。数据量大,传输效率低。 其他语言无法识别。json 序列化存在占用空间大。性能低下。是因为有很多结构化的东西,各种符号。 但是可读性强。为什么要进行序...原创 2019-11-11 14:57:15 · 679 阅读 · 0 评论 -
Android开发图片开源系列框架
文章目录1、图片加载,缓存,处理2、图片裁剪3、图片选择4、图片转换,压缩,滤镜4、高斯模糊,毛玻璃,图片模糊1、图片加载,缓存,处理框架名称 :Android Universal Image Loader 一个强大的加载,缓存,展示图片的库,已过时Picasso 一个强大的图片下载与缓存的库Fresco 一个用于管理图像和他们使用的内存的库Glide 一个图片加载和缓存的库,使用的A...转载 2019-11-09 13:57:28 · 313 阅读 · 0 评论 -
[JAVA]深入讲解ThreadLocal变量通常设置为static的原因
文章目录什么是ThreadLocal:Java static:ThreadLocal变量为什么用static修饰什么是ThreadLocal:JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,ThreadLocal并不是一个Thread,而是Thread的...原创 2019-11-08 20:52:54 · 8419 阅读 · 1 评论 -
闪拍 -比美-图片知识产权交易-图片展览 产品构思
目标群体:看到喜欢的美景并拍照,并喜欢分享的人产品目标:操作简单,看到美的东西,以最快的操作留下最美的瞬间,通过分享照片,让美传递给那些同样爱美的人,从而让人-照片-人之间形成闭环,正所谓“独乐乐不如众乐乐”。产品情怀:繁杂的世界里,独留一份直接的,单纯的美。产品对标:对标抖音,快手,他们是短视频,我们是优雅的照片,他们低俗,我们是绝对高雅的艺术!商业模式:获取流量-->广告...原创 2019-11-05 17:26:49 · 277 阅读 · 0 评论 -
java 线程的几种状态
java 线程的几种状态 java thread的运行周期中, 有几种状态, 在 java.lang.Thread.State 中有详细定义和说明:NEW 状态是指线程刚创建, 尚未启动RUNNABLE 状态是线程正在正常运行中, 当然可能会有某种耗时计算/IO等待的操作/CPU时间片切换等, 这个状态下发生的等待一般是其他系统资源, 而不是锁, Sleep等转载 2017-08-28 19:37:43 · 354 阅读 · 0 评论 -
UML设计中的箭头详解
UML类图是描述类之间的关系,关系有重复度和形式之分。重复度:单重复度,只存在一对一的关系。多重复度,用列表、vector或其它的数据结构维护一对多,多对多的关系这里再说一下重复度,其实看完了上面的描述之后,我们应该清楚了各个关系间的关系以及具体对应到代码是怎么样的,所谓的重复度,也只不过是上面的扩展,例如A和B有着“1对多”的重复度,那在A中就有一个列表,保存着B转载 2017-08-29 11:01:26 · 2129 阅读 · 0 评论 -
谈谈Java中的ThreadLocal
ThreadLocal介绍&跳出误区看看源码线程独享变量?ThreadLocal介绍&跳出误区 ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。跳出误区 需要重点强调的的是,不要拿ThreadLocal和synchro转载 2017-08-30 12:10:17 · 247 阅读 · 0 评论 -
Android 非静态内部类导致内存泄漏原因深入剖析
背景上周发现蘑菇街IM-Android代码里面,一些地方代码编写不当,存在内存泄漏的问题,在和疯紫交流的过程中,发现加深了一些理解,所以决定写一下分析思路,相互学习。内存泄漏一个不会被使用的对象,因为另一个正在使用的对象持有该对象的引用,导致它不能正常被回收,而停留在堆内存中。内存泄漏的危害最坏的情况,App可能会因为大量的内存泄漏而导致内存耗尽,引发Cra转载 2017-08-30 13:53:54 · 586 阅读 · 0 评论 -
Java 类中各成分加载顺序 和 内存中的存放位置
一、什么时候会加载类?使用到类中的内容时加载:有三种情况1.创建对象:new StaticCode();2.使用类中的静态成员:StaticCode.num=9; StaticCode.show();3.在命令行中运行:Java StaticCodeDemo二、类所有内容加载顺序和内存中的存放位置:利用语句进行分析。1.Person p=new Person("z转载 2017-08-30 15:20:27 · 347 阅读 · 0 评论 -
MVP架构模式详解
一.为什么需要软件设计模式?我们先来定义什么是好的软件架构:软件架构上具有明确的分工,各个模块的功能职责平衡分配,且明确。可测试性,通常良好的软件架构都具备良好的可测试性。良好的易用性,维护成本低。为什么需要模块分工?良好的模块分工,可以大大简化我们对代码的理解难度。虽然通过大量的开发工作,可以训练我们的大脑去分析越来越复杂的逻辑,但是人总有极限,而且简单的逻辑更容易理转载 2017-09-01 16:47:39 · 849 阅读 · 0 评论 -
Android Studio下JNI编程(引入外部或AS自行编译so文件)
1. 引用外部so文件已验证过的引用外部so文件主要有三种方式:1.1 main目录下创建jniLibs目录,so文件按平台存放于子目录下(最简单方式)只需在app/src/main目录下创建jniLibs目录,然后将so文件按平台存放于对应子目录下即可。1.2 将jniLibs重定向到libs目录。(Eclipse项目习惯)将so转载 2017-09-27 15:13:45 · 1889 阅读 · 0 评论 -
Android Activity生命周期以及Fragment生命周期的区别与分析
Android Fragment生命周期图:Activity生命周期图: 对照图:Fragment生命周期分析:1. 当一个fragment被创建的时候,它会经历以下状态.onAttach()onCreate()onCreateView()onActivityCreated()2. 当这个fragment对用户可见的时候,它会经历以下状态。onS转载 2017-09-01 23:55:11 · 275 阅读 · 0 评论 -
java泛型-简单易懂
转自:百度百科泛型是Java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操作的数据类型被指定为一个参数。这种参数类型可以用在类、接口和方法的创建中,分别称为泛型类、泛型接口、泛型方法。 Java语言引入泛型的好处是安全简单。在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换转载 2017-09-02 18:06:46 · 254 阅读 · 0 评论 -
理解Android虚拟机体系结构
1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的Java应用程序的运行。dex格式是专门为Dalvik设计的一种压缩格式,适合内存和处理器速度有限的系统。Google对其进行了特定的优化,使得Dalvik具有高效、简洁、节省资源的特点。从转载 2017-08-24 10:56:36 · 422 阅读 · 0 评论 -
理解 Android Build 系统
前言Android Build 系统是 Android 源码的一部分。关于如何获取 Android 源码,请参照 Android Source 官方网站:http://source.android.com/source/downloading.html。Android Build 系统用来编译 Android 系统,Android SDK 以及相关文档。该系统主要由 Mak转载 2017-09-13 14:45:08 · 337 阅读 · 0 评论 -
浅谈链式编程及建造者模式
今天谈谈链式编程,和建造者模式,第一部分谈链式编程,第二部分谈建造者模式。在安卓开发中,最早接触链式编程,应该算是AlertDialog类了,后来在github上看到JakeWharton 的picasso图片处理框架。从ViewpageIndicator开始关注JakeWharton ,当时对他的佩服是无比的,觉得他想让我们用什么风格写代码,就能给我们创造出相应的框架,注意,重点是风格哦转载 2017-09-13 10:52:02 · 783 阅读 · 0 评论 -
Android中的Apk的加固(加壳)原理解析和实现
一、前言今天又到周末了,憋了好久又要出博客了,今天来介绍一下Android中的如何对Apk进行加固的原理。现阶段。我们知道android中的反编译工作越来越让人操作熟练,我们辛苦的开发出一个apk,结果被人反编译了,那心情真心不舒服。虽然我们混淆,做到native层,但是这都是治标不治本。反编译的技术在更新,那么保护Apk的技术就不能停止。现在网上有很多Apk加固的第三方平台,最有名的应当转载 2017-08-19 16:27:43 · 304 阅读 · 0 评论 -
Android View绘制和显示原理简介
转自:http://blog.youkuaiyun.com/zhangcanyan/article/details/52817989 Android View绘制和显示原理简介2016-10-14 18:08 1664人阅读 评论(1) 收藏 举报 分类:Android(169) 版权声明:本文为博主原创文章,未经博主允许不得转载。转载 2017-08-05 22:14:39 · 314 阅读 · 0 评论 -
ActivityStack类startActivityLocked方法解析
方法定义如下:final void startActivityLocked(ActivityRecord r, boolean newTask, boolean keepCurTransition, ActivityOptions options) 这个方法的主要作用是Task和Activity的进栈处理首先看下面这段代码: if (!r.m原创 2017-08-15 10:15:57 · 1619 阅读 · 0 评论 -
Android内存优化(使用SparseArray和ArrayMap代替HashMap)
Android内存优化(使用SparseArray和ArrayMap代替HashMap)2016-09-22 14:00 by 熠熠闪光, 3308 阅读, 0 评论, 收藏, 编辑在Android开发时,我们使用的大部分都是Java的api,比如HashMap这个api,使用率非常高,但是对于Android这种对内存非常敏感的移动平台,很多时候使用一些java的api并不能达到更转载 2017-08-08 16:51:07 · 232 阅读 · 0 评论 -
【Android优化】最强ListView优化方案
【Android优化】最强ListView优化方案标签: androidListView优化convertViewViewHolder2015-08-03 23:35 4111人阅读 评论(4) 收藏 举报 分类:Android优化版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]在and转载 2017-08-04 21:59:19 · 349 阅读 · 0 评论 -
Android Input System分析(三)--Native
本来想跟大家讲一下设备节点的,后来发现这方面的资料很多,大家可以到网站自行搜索一下就可以了。在linux系统里,万物皆以文件的形式来处理,设备节点其实就是一个个文件,而且这些个文件对用户空间是开放的,而且是对不同的进程访问都是开放的,也就是说用户空间可以对内核空间的设备节点文件进行读写操作,从而到达数据传输的目的。Android大名鼎鼎的Binder其实也是这个原理实现的。好了,我们还是进入到原创 2017-08-22 11:30:38 · 814 阅读 · 0 评论 -
Android Input System分析(二)--内核部分
由Android Input System分析(一)--基本架构已经基本了解了一轮内核部分的工作原理,这里基本架构不再累述,直接从源码开始。介绍源码的流程如下:这里以触摸屏为例,国内很多手机品牌使用的都是汇鼎、墩泰的tp,下面以ctp_it7250.c为例,TP IC部分的驱动源码这里不做分析,因为不具有太多的逻辑性,基本实现的都是和硬件的通信,不过他们使用的API都是linux标准的接口原创 2017-08-21 15:27:50 · 724 阅读 · 0 评论 -
Android Input System分析(一)--基本架构
说明:本文中诸多图片均来源于网络,如有冒犯,请谅解。开始之前,我们先从整个android大的架构来俯视一遍input体系,先一览众山小,再对局部刨根问底,如下图:从这张图来看,我们可以看出总共分了三部分,一个是客户进程,一个是系统进程,正常情况下android的客户端和系统进程通信使用的是binder,但这里在消息分发的时候并不是,而是使用的是管道,具体原因在后面再分析。第原创 2017-08-21 14:59:13 · 2419 阅读 · 0 评论 -
Android开发之如何保证Service不被杀掉
序言最近项目要实现这样一个效果:运行后,要有一个service始终保持在后台运行,不管用户作出什么操作,都要保证service不被kill,这可真是一个难题。参考了现今各种定制版的系统和安全厂商牛虻软件,如何能保证自己的Service不被杀死呢?其实除了常规的手段,我们可以参考一下微信和360,设置-程序-正在运行,可以看到微信是同时开启了两个进程和服务:【有兴趣可转载 2017-08-21 12:15:41 · 3228 阅读 · 0 评论 -
Android总结篇系列:Activity启动模式(launchMode)
本来想针对Activity中的启动模式写篇文章的,后来网上发现有人已经总结的相当好了,在此直接引用过来,并加上自己的一些理解,在此感谢原作者。文章地址:http://blog.youkuaiyun.com/liuhe688/article/details/6754323-----------------------------------------------------------转载 2017-08-21 10:58:44 · 303 阅读 · 0 评论 -
Android App整体架构设计的思考
本文是对我在知乎一个回答的整理,其中的内容大多是对我平时的阅读和实践的总结,希望对Android的开发者有所帮助。但毕竟是个人的一些思考,难免有疏漏,也欢迎对本文的内容提出建议。1. 架构设计的目的 对程序进行架构设计的原因,归根到底是为了提高生产力。通过设计使程序模块化,做到模块内部的高聚合和模块之间的低耦合。这样做的好处是使得程序在开发的过程中,开发人员只需要专注转载 2017-08-21 10:55:44 · 377 阅读 · 0 评论 -
ActivityStackSupervisor.java关键信息解读
ActivityStackSupervisor.java的声明如下:public final class ActivityStackSupervisor implements DisplayListener {}ActivityStackSupervisor是AMS重要的实现,是Android系统Activity的栈管理器,管理着两个重要的Activity栈,实际上Android 早期不是原创 2017-08-15 18:34:32 · 1638 阅读 · 0 评论 -
Android事件分发机制——Touch事件
1. 简介 先来看一个表:Touch事件相关方法功能ActivityViewGroupViewpublic boolean dispatchTouchEvent(MotionEvent ev)事件分发YesYesYespublic转载 2017-09-04 17:41:19 · 320 阅读 · 0 评论 -
Android应用开发性能优化完全分析
转自:http://blog.youkuaiyun.com/yanbober/article/details/483942011 背景其实有点不想写这篇文章的,但是又想写,有些矛盾。不想写的原因是随便上网一搜一堆关于性能的建议,感觉大家你一总结、我一总结的都说到了很多优化注意事项,但是看过这些文章后大多数存在一个问题就是只给出啥啥啥不能用,啥啥啥该咋用等,却很少有较为系统的进行真正性能案例分析转载 2017-08-23 14:51:01 · 572 阅读 · 0 评论 -
Android N混合使用AOT编译,解释和JIT三种运行时
引用:http://www.infoq.com/cn/news/2016/04/android-n-aot-jitAndroid N引入了一种包含编译、解释和JIT(Just In Time)的混合运行时,以便在安装时间、内存占用、电池消耗和性能之间获得最好的折衷。ART是在Android KitKat(译者注:Android 4.0)引入并在Lollipop(译者注:Androi转载 2017-08-09 16:34:43 · 1701 阅读 · 0 评论