5 alice_0305

尚未进行身份认证

我要认证

热爱生活

等级
TA的排名 5w+

Android性能优化系列之内存优化

在Java中,内存的分配是由程序完成的,而内存的释放是由垃圾收集器(Garbage Collection,GC)完成的,程序员不需要通过调用函数来释放内存,但也随之带来了内存泄漏的可能,上篇博客,我介绍了 Android性能优化系列之布局优化,本篇博客,我将介绍内存优化的相关知识。内存的分配策略概述程序运行时的内存分配有三种策略,分别是静态的,栈式的,和堆式的,对应的,三种存储策略使用的内...

2018-08-16 14:19:29

Android性能优化系列之布局优化

在Android开发中,UI布局可以说是每个App使用频率很高的,随着UI越来越多,布局的重复性、复杂度也会随之增长,这样使得UI布局的优化,显得至关重要,UI布局不慎,就会引起过度绘制,从而造成UI卡顿的情况,本篇博客,我就来总结一下UI布局优化的相关技巧。学会使用布局标签优化布局(1)<include>标签 include标签常用于将布局中的公共部分提取出来供其他layo...

2018-08-16 14:16:34

Android性能优化系列之apk瘦身

为什么APK要瘦身。APK越大,在下载安装过程中,他们耗费的流量会越多,安装等待时间也会越长;对于产品本身,意味着下载转化率会越低(因为竞品中,用户有更多机会选择那个体验最好,功能最多,性能最好,包最小的),所以apk的瘦身优化也很重要,本篇博客将讲述apk瘦身的相关内容。包体分析在Android Studio工具栏里,打开build–>Analyze APK, 选择要分析的APK包...

2018-08-16 13:56:23

Android Studio安装插件提示was not installed: Cannot download的解决办法(仅限AS2.2版本以上)

这是报错消息:Plugin Android ButterKnife Plugin Plus was not installed: Cannot download 'http://plugins.jetbrains.com/pluginManager/?action=download&id=life.iuni.android.plugin.butterknife&build=AI-1...

2018-07-03 19:27:57

获取手机的音频文件展示并播放

获取手机的音频文件展示在ListView 点击一个播放一个/** * 获取手机上的所有音乐点击开始播放 */public class MainActivity extends AppCompatActivity { private ListView listView; // 获取外部存储的 音频文件 也可以 修改为 视频 Vedio 或内部存储 private U

2017-10-25 14:08:19

IntentService使用详解和实例介绍

IntentService定义  IntentService继承与Service,用来处理异步请求。客户端可以通过startService(Intent)方法传递请求给IntentService。IntentService在onCreate()函数中通过HandlerThread单独开启一个线程来依次处理所有Intent请求对象所对应的任务。       这样以免事务处理阻塞主线程

2017-09-20 09:29:55

详解Android中IntentService的使用方法

为什么我们需要IntentService ?Android中的IntentService是继承自Service类的,在我们讨论IntentService之前,我们先想一下Service的特点: Service的回调方法(onCreate、onStartCommand、onBind、onDestroy)都是运行在主线程中的。当我们通过startService启动Service之后,我们就需要在S

2017-09-20 09:26:55

FragmentPagerAdapter与FragmentStatePagerAdapter区别

【ViewPager】ViewPager 如其名所述,是负责翻页的一个View。准确说是一个 ViewGroup,包含多个View 页,在手指横向滑动屏幕时,其负责对 View 进行切换。为了生成这些 View页,需要提供一个 PagerAdapter 来进行和数据绑定以及生成最终的View 页。setAdapter()ViewPager 通过setAdapte

2017-09-15 09:32:49

浅谈Android中的LOG查看ANR(一)

转自:http://yinger-fei.iteye.com/blog/1533788手机中pull处理trace.txt进去 data/anr 再pull 一:什么是ANR                  ANR:Application Not Responding,即应用无响应二:ANR的类型                  ANR一般有三种类型

2017-09-01 14:48:48

Android中自定义ContentProvider及用法

一。自定义ContentProvier时,需要继承ContentProvider,并实现其中的6个方法:onCreate():一般完成数据库的创建,当指定数据库不存在时,则创建一个数据库,当已经存在时,则不再执行该方法,即该方法之执行一次;insert():插入数据;query():查询数据;delete():删除数据;update():修改数据;getType():会根据

2017-09-01 14:47:08

Android 中ContentProvider的用法及用ContentProvider访问联系人

一。概念: * ContentProvider,内容提供者,android四组件之一,可以跨程序访问数据; * 若用ContentProvider实现不同应用程序之间数据的共享,必须借助ContentResolver(内容解析器)类, * 1.获得ContentResolver对象:Context.getContentResolver(); * 2.通过ContentResolve

2017-09-01 14:46:11

Android 数据存储(三) 数据库存储

在Android的数据存储机制中,文件存储和共享参数存储只适合存储一些简单的数据,如果要存储复杂数据,就需要使用到SQLite数据库存储,在Android中系统内置了数据库,运算速度快,占用资源也比较少。一。创建数据库:创建数据库时,用到了SQliteOpenHelper类,这是一个抽象类,故继承它,并实现它的两个方法:onCreate(),onUpdate();onCreate():

2017-09-01 14:44:56

Android 数据存储(二)文件存储

在android中数据存储分四种:文件存储,共享参数存储,外部存储,数据库存储,各自都有优势和缺点,本文章主要了解文件存储。一。存储原理及步骤:文件存储的原理就是用IO流的原理,对数据进行写入和读出,具体步骤如下:1.用openFileOutputStream()和openFileInputStream()得到FileOutputStream/FileInputStream;2.通过F

2017-09-01 14:43:40

Android 数据存储(一) 共享参数存储

一。原理:SharedPreferences是采用键值对对数据进行存储的,当存入数据时,给数据设置一个对应的键,取出数据时,就可以根据键获取到相应的数据。二。步骤:1.得到SharedPreferences对象;得到共享参数实例的方式有三种:  1.Context.getSharedPreferences();  2.Acitvity中:getPreferences();  3

2017-09-01 14:42:32

adb操作命令详解及大全

adb是什么?:adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在Eclipse中方面通过DDMS来调试Android程序,说白了就是debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行

2016-11-24 16:28:49

unity3D的面试题

第一部分1.请简述值类型与引用类型的区别2.C#中所有引用类型的基类是什么3.请简述ArrayList和List的主要区别4.请简述GC(垃圾回收)产生的原因,并描述如何避免?5.请描述Interface与抽象类之间的不同6.下列代码在运行中会产生几个临时对象?7.下列代码在运行中会发生什么问题?如何避免?8.请简述关键字Sealed

2016-11-16 16:04:12

Unity3D游戏开发之详解 Animation类和Animator类

Animation类animation组件用于播放动画。可以指定动画剪辑到动画组件并从脚本控制动画播放。在的动画系统基于权重并且支持动画融合,叠加动画,动画混合,标签和完全控制动画播放的各个方面。如果想播放一个简单的动画,可以使用Animation.Play;如果想在动画之间交叉淡入,可以使用Animation.CrossFade;如果想改变动画模式(循环,一次,乒乓),可以改变动画导入设

2016-11-16 14:25:46

unity自带寻路Navmesh入门教程(三)

继续介绍NavMesh寻路的功能,接下来阿赵打算讲一下以下两个例子,先看看完成的效果:  第一个例子对于喜欢DOTA的朋友应该很熟悉了,就是不同小队分不同路线进攻的寻路,红绿蓝三个队伍分别根据三条路线进攻。第二个例子是动态的控制道路的开关。当吊桥打开时,道路不通,当吊桥放下时,道路可以通行。先来说说第一个例子吧,第一个例子其实很简单,只需要在之前两节的基础上

2016-11-16 11:47:10

unity自带寻路Navmesh入门教程(二)

上一节简单介绍了NavMesh寻路的基本用法,这次来介绍一下稍微复杂一点点的高低落差以及跳跃的做法,首先来看看这次的目标:  由于博客相册上传GIF有限制,所以我把整个过程切开了2部分上传,第一部分是爬楼梯,第二部分是横向跳跃和往下跳落      不管是爬楼梯,还是跳跃,NavMesh都是通过了OffMeshLink来做的。创建OffMeshLink的方法有两种,接

2016-11-16 11:45:03

unity自带寻路Navmesh入门教程(一)

unity自从3.5版本之后,增加了NavMesh寻路的功能。在此之前,unity用户只能通过第三方插件(如Astar寻路插件)等做寻路功能。阿赵我也使用过A*寻路插件,A*的原理并不复杂,有兴趣的朋友可以自己百度一下。不过由于不是自带的功能,所以在设定网格和烘焙的过程难免会出现很多不便。NavMesh作为unity自带的功能,用法和之前的LightMapping烘焙或者遮挡剔除Occlusion

2016-11-16 11:43:25

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!