android
文章平均质量分 65
追梦者_wang
追梦者
展开
-
mvp为什么是必须的
1.最原始的mvc最开始做Android没有架构,那就是mvc了,activity包罗万象,逻辑在activity,ui修改在activity结果一个activity上千行代码也是正常了,于是乎出现了mvp。最原始的mvc只能写小项目,大项目根本不可维护不可扩展,多人协作开发更是灾难了。2.升级的mvp解耦,好的项目必须解耦,这样才能扩展维护。解耦就是,个人自扫门前雪,负责好自...原创 2019-12-22 22:38:57 · 188 阅读 · 0 评论 -
Android多线程(一)多线程基础
多线程一直计划系统复习下,拖延了很久,网站找资料学习整理,先完成1.0版本,后续逐步完善修改开始第一步才会有后续进展1:线程线程 (轻量级进程,自己不独立拥有自己,和别的进程共享进程所拥有的资源),提高并发性能。基本定义:一个基本的CPU执行单元 & 程序执行流的最小单元拥有类似于进程的就绪、阻塞、运行3种基本状态,具体如下图:1.1:守护线程定义:守护...原创 2019-11-08 22:13:40 · 84 阅读 · 0 评论 -
RecyclerView的深入了解
RecyclerView的初步介绍RecyclerView的解释 A flexible view for providing a limited window into a large data set. (能够在有限的窗口中展示大数据集合的灵活视图。)RecyclerView个人一直认为就是listivew的升级控件,但是官方解释说的很明白RecyclerView主要是灵活展示大量数据原创 2017-04-26 13:46:57 · 203 阅读 · 0 评论 -
Android Rect类的构造函数参数说明
绘制图形经常回传入left, top, right, bottom 四个参数,然后绘制出来,要明确正确概念,这里写一下了,用RectF类的构造函数参数举例说明Android RectF类的构造函数参数说明: 以下是API中的说明: public RectF (float left, float top, float right, float bottom)Added in API level原创 2017-04-26 14:02:48 · 1073 阅读 · 0 评论 -
属性动画
为什么是属性动画Android中常用的动画主要三种,分别如下Tween Animation:(补间动画)在古老的Android版本系统中就已经提供了,只能被用来设置View的动画。 Frame Animation:(逐帧动画)其实可以划分到视图动画的类别,专门用来一个一个的显示Drawable的resources,就像放幻灯片一样。 **Property Animation:(属性动画)**An原创 2017-04-27 15:05:21 · 227 阅读 · 0 评论 -
Android图片加载-TakePhoto
TakePhotohttps://github.com/crazycodeboy/TakePhoto种的一个问题自定义UI自定义状态栏 修改颜色后,如果选择图片就会还原原始的颜色,后发现图片选择框架使用的MultipleImageSelecthttps://github.com/darsh2/MultipleImageSelect找到最原版的修改方案原创 2017-06-20 16:00:55 · 1334 阅读 · 1 评论 -
android国际化
最近做一些土耳其项目的国际化 string放入对应的反应文件后,发现一些特殊的字符无法正常识别,找一下解决方案。android 显示特殊符号的处理http://hsx9566.iteye.com/blog/1305052原创 2017-07-04 19:51:47 · 266 阅读 · 0 评论 -
多线程相关知识
关于线程进程的理解一个例子:进程:计算机核心cpu,如同一个工厂,时刻工作。但是工厂资源有限,一次只能运行一个车间(进程)。一个cup一次只能运行一个任务。线程:一个车间里面包含很多员工,(线程)车间的空间对全部工人开发(每个线程都可以使用这些共享内存)。但是空间有限,例如一个人在厕所,只能等待,为了不让别人打扰就需要上锁。自己结束后其他人在运行(一些内存资源读写时候必须一个线程结束后原创 2017-09-04 15:29:17 · 193 阅读 · 0 评论 -
android中多线进程开发
进程:进程是操作系统最核心的概念,它是对正在运行的程序的抽象。线程是进程中的一个实例,是系统实施调度的独立单位。 进程是系统分配资源和调度的基本单位,所以进程都有独立的资源和内存空间,别的进程部分随意访问。android中每个app分配内存有限,如果到达上线很容易oom,使用多进程可以有效分担主进程的压力,主进程进行ui相关操作,网络请求数据保存很多可以开启一个server在一个新原创 2017-09-06 12:09:28 · 246 阅读 · 0 评论 -
adnroid BroadcastReceiver 分析
BroadcastReceiver 四大组件之一,使用频率不是很高,一直采用广播发送/接收的形式,也就是我们今天要讲的Broadcast和BroadcastReceiver,这种方式本质上属于消息订阅/发布的事件驱动流形式。原创 2017-09-14 15:50:59 · 204 阅读 · 0 评论 -
Dalvik ART的理解
一:概述 Dalvik是Google公司自己设计用于Android平台的虚拟机。但是性能一直备受指责。 Android L谷歌退出了ART,简单来说ART是Dalvik 的升级版本,通过空间换时间提高了运行效率和用户体验。 二:Dalvik Dalvik 采用寄存器比基于栈的jvm更加优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个Dalvik 应用作为一个独立的Linux 进程原创 2017-11-13 14:43:56 · 420 阅读 · 0 评论 -
android如何丧心病狂的压缩
1.可以直接拷贝用的代码 private void encode(String path) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); //输出流baos BitmapFactory.Options options = new BitmapFactory.原创 2017-11-22 17:51:16 · 417 阅读 · 0 评论 -
Android与Gradle
Android Studio 的项目默认生产了大量文件。如果不了解gradle会经常遇到各种莫名其妙的问题。 Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化建构工具。它使用一种基于Groovy的特定领域语言来声明项目设置。在语法上是基于Groovy语言的(Groovy 是一种基于JVM的敏捷开发语言,可以简单的理解为强类型语言java的弱类型版...原创 2019-01-08 16:14:08 · 213 阅读 · 0 评论 -
Android事件分发机制详解(一)
很重要的概念,网上搜集整理,深入学习.事件分发的对象-MotionEventMotionEvent 对象是Android事件分发的核心概念,必须明白 当用户触摸屏幕时(View或ViewGroup派生的控件),将产生点击事件(Touch事件)。 Touch事件相关细节(发生触摸的位置、时间、历史记录、手势动作等)被封装成MotionEvent对象 ○ MotionEvent.A原创 2017-04-26 13:14:20 · 220 阅读 · 0 评论 -
有了基本类型之后为什么还要有包装器类型呢?
有了基本类型之后为什么还要有包装器类型呢?核心:让基本类型具备对象的特征,实现更多的功能. Java是一个面相对象的编程语言,基本类型并不具有对象的性质,为了让基本类型也具有对象的特征,就出现了包装类型(如我们在使用集合类型Collection时就一定要使用包装类型而非基本类型),它相当于将基本类型“包装起来”,使得它具有了对象的性质,并且为其添加了属性和方法,丰富了基本类型的操作。Java 的两原创 2017-05-15 12:45:49 · 3742 阅读 · 1 评论 -
Android内存优化的分析
AndroidOOM一直是个很重要需要解决的问题.出现原因内存泄露 Memory leak 申请的内存在使用完后无法正确释放,如果持续出现会产生大量泄露.Android虚拟机运行的内存是有限的,如果泄露太多,在后续程序再次申请内存时候无法提供足够的空间使用,于是就产生了内存溢出 Out of Memory. 为什么会出现泄露问题? 垃圾回收机制有关了 栈中存放基础类型和对象引用 堆中存放n原创 2017-03-14 11:32:38 · 240 阅读 · 0 评论 -
mvp学习使用
为什么需要mvpMVP 模式介绍 Android项目中ui占据大部分工作,早期开发,一般ui业务逻辑都写在Activity或者Fragment里面,直接后果,项目大了之后,ui界面代码会越来越臃肿,维护非常不方便.当项目越来越庞大、复杂,参与的研发人员越来越多的时候,MVP 模式 的优势就充分显示出来了.核心功能和业务逻辑分离,Activity 和 Fragment属于 View 层,用于展示 U原创 2017-04-10 17:18:34 · 247 阅读 · 0 评论 -
Android屏幕适配的整合
Android常用到的一些适配方法总结.“布局”匹配本质1:使得布局元素自适应屏幕尺寸 RelativeLayout布局 RelativeLayout的子控件之间使用相对位置的方式排列,因为RelativeLayout讲究的是相对位置,即使屏幕的大小改变,视图之前的相对位置都不会变化,与屏幕大小无关,灵活性很强 所以,对于屏幕适配来说,使用相对布局(RelativeLayout)将会是更好的解原创 2017-03-15 20:57:26 · 321 阅读 · 0 评论 -
RxAndroid的使用方式(一)
RxAndroid一个功能强大的框架,强大意味掌握成本比较高,断断续续研究了很久,今天写出来,输出才是更好的输入.Rx是什么Rx并不是一种新的语言,而是一种普通的Java模式,类似于观察者模式(Observer Pattern),可以将它看作一个普通的Java类库,因此你可以立即使用RxJava。而RxAndroid是RxJava的一个针对Android平台的扩展,主要用于 Android 开发。R原创 2017-04-11 17:42:54 · 1003 阅读 · 0 评论 -
Retrofit的使用
Retrofit介绍Retrofit是由Square公司出品的针对于Android和Java的类型安全的Http客户端, 如果看源码会发现其实质上就是对okHttp的封装,使用面向接口的方式进行网络请求,利用动态生成的代理类封装了网络接口请求的底层, 其将请求返回javaBean,对网络认证 REST API进行了很好对支持此,使用Retrofit将会极大的提高我们应用的网络体验。Retrofi原创 2017-04-12 14:33:21 · 244 阅读 · 0 评论 -
Android录音和播放录音
知识点:自定义控件,MediaPlayer,MediaRecorder初始化 File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/测试.mp3"); FileName = file.getAbsolutePath(); mStopPlay.set原创 2017-04-28 11:22:33 · 535 阅读 · 1 评论 -
冥想背景音乐功能
知识点:自定义控件,MediaPlayer,Ripple水波纹效果,CardView自己计划的app在github上面很久了,一直没有什么进展,后来发现是自己想多了,计划太多感觉好难啊以后在看,就是没有行动,好几个月了.日拱一卒 不期速成,先开始做吧,虽然感觉自己的代码博客真的不好,不过谁是完美的,先第一版,慢慢迭代完美了.冥想功能,最近2个月喜欢冥想,喜欢用番茄钟工作,所以需要下载不少app,都原创 2017-04-28 11:22:30 · 714 阅读 · 0 评论 -
Android框架--DBFlow
为什么用DBFlowDBFlow使用比较简单,正好自己项目要用到就学习下,基本没什么难度,DBFlow封装的很好了一些简单配置就可以使用,感觉没什么写的,不过要记录自己整个项目过程还是写一下吧.简单3步就可以满足正常使用了1.配置buildscript { repositories { jcenter() } dependencies { classpath 'c原创 2017-04-28 11:22:24 · 373 阅读 · 0 评论 -
android框架--Dagger2
为什么用Dagger2Dagger2 是一款使用在Java和Android上的依赖注入的一个类库。是通过依赖注入让你少些很多公式化代码,更容易测试,降低耦合,创建可复用可互换的模块(核心和ButterKnife类似都是少写不必要的代码,更加优雅)功能很强大,不仅仅只是找个id实现个点击,当然学习难度也是非常大了,不过如果只是简单实用也是很简单,这篇博客只是Dagger2的简单介绍实用,很多高级的原创 2017-04-28 11:22:21 · 277 阅读 · 0 评论 -
开发准备--Android Studio的配置
Android Studio现在很常用了,自己电脑也很久配置好了,踩过的坑很多了,这里简单写几个我感觉重要需要记录下的字体设置 Settings 搜font出现两个,图1是系统的字体,图2是编码区的字体,个人习惯设置的很大,感觉比较舒服.12快捷键Android Studio的快捷键和Eclipse的不相同,但是你可以在Android Studio中使用Eclipse的快捷键。Set原创 2017-04-28 11:22:12 · 240 阅读 · 0 评论 -
开发准备--Android Studio中的版本管理git
开发的准备工作之一,版本的管理即使一个人版本管理也是很有必要,Android Studio提供了git插件很简单的几步可以完成关联提交,下面具体的步骤1.下载安装git (正常安装就可),打开Android Studio中的设置界面,找到版本控制“Version Control”中的Git,然后设置Git的安装位置,Android Studio默认设置为Git for Windows的默认安装位原创 2017-04-28 11:22:15 · 512 阅读 · 0 评论 -
android注解框架--ButterKnife
开始项目开发当然要想好用什么框架,别人造好的轮子当然好好利用了,第一个是ButterKnifeButterKnife 有哪些优势?具体优势:1.强大的View绑定和Click事件处理功能,简化代码,提升开发效率2.方便的处理Adapter里的ViewHolder绑定问题3.运行时不会影响APP效率,使用配置方便4.代码清晰,可读性强基本使用3步(非常简单)1在项目的project 的bui原创 2017-04-28 11:22:18 · 315 阅读 · 0 评论 -
2016 Google 开发者大会 一日
重要的2016 Google 开发者大会当日Google全球开发者产品总监Ben Galbraith在会上宣布为了给中国开发者提供更好的服务,Google已将三个全球开发者网站落地中国域名,并对部分内容进行汉化。(这个太重要了,学习的最佳途径)Google Developers 中国网站Android官宣|Google Developers中国网站发布 '原文地址'前言非常幸运的参加了在北京原创 2017-04-28 11:22:27 · 594 阅读 · 0 评论 -
java回调机制
回调的简单解释有一个回调接口CallBackInterface,定义了一个方法method().然后有一个上层类Teacher实现了接扣完成了method()的具体实现, 底层的类Student接受Teacher的对象,然后执行具体的方法call(),完成自己操作后可以通过Teacher的对象执行method()的具体实现,完成回调小例子打电话,老师分配给学生任务,写一篇作文,学生完成作文后,打电原创 2017-03-27 21:58:37 · 231 阅读 · 0 评论