安卓开发
Tiger--Chen
这个作者很懒,什么都没留下…
展开
-
安卓过度绘制
1.概述 UI渲染操作通常依赖于两个核心组件:CPU与GPU。CPU负责包括Measure,Layout,Record,Execute的计算操作,GPU负责Rasterization(栅格化)操作。 所谓栅格化,就是将那些UI控件(如Button,Bitmap)拆分到不同的像素上进行显示。这是一个很费时的操作,GPU能够加快栅格化的操作。 为了能够使得App流畅,在Android中我...原创 2019-11-18 11:39:21 · 357 阅读 · 0 评论 -
安卓内存相关
一、内存泄露的定义:内存泄露是指不再使用的内存仍然占用着内存空间,因为程序中仍然保存着对它的引用,而使得GC无法将它回收或得到及时释放,从而造成的内存空间浪费的问题,称为内存泄露。二、内存泄露的根本原因:长生命周期的对象持有短生命周期对应的引用,因为短生命周期对象可能不再使用,而因为长生命周期对象持有着对其的引用,因此GC无法将其进行回收。三、内存泄露(Memory Le...原创 2019-11-18 10:51:49 · 370 阅读 · 0 评论 -
知识总结------ListView
ListView的使用使用ArrayAdapter:使用SimpleAdapter:继承BaseAdapter实现其中的getCount() 、getItem()、getItemId()、getView()实现自定义AdapterListView的刷新可以使用adapter.notifyDataSetChanged()进行刷新。Li...原创 2019-09-09 12:17:25 · 285 阅读 · 0 评论 -
知识总结------RecyclerView
RecyclerView的使用:1、在Activity中获取RecyclerView,并设置LayoutManager以及Adapter:这里LayoutManager是RecyclerView的布局管理器,用以实现Item不同布局排列方式,RecyclerView必须调用setLayoutManager设置布局管理器。RecyclerView中默认带有三个布局管理器:Linea...原创 2019-09-09 12:08:30 · 260 阅读 · 0 评论 -
知识总结----Handler&HandlerThread
1、一个Thread可以有几个Looper?几个Handler?答:只能有一个Looper,不然调用Looper.prepare()会抛出运行时异常,提示“Only one Looper may be created per thread”可以创建无数个Handler,但是他们使用的消息队列都是同一个,也就是同一个Looper2、Handler导致内存泄漏一般在一个耗时...原创 2019-09-08 19:10:33 · 337 阅读 · 0 评论 -
知识总结------Broadcast
一、广播种类普通广播:Context.sendBroadcast。系统广播(有序广播):Context.sendOrderedBroadcast。本地广播:只在自身App内传播。</br>二、实现广播1.静态注册:在Manifest.xml中注册完成就一直运行,App关闭了也不受影响。<receiver android: name =“Receiver1”...原创 2019-09-08 18:33:20 · 118 阅读 · 0 评论 -
知识总结------Service
多线程的应用在Android开发中是非常常见的,常用方法主要有:继承Thread类 实现Runnable接口 AsyncTask Handler HandlerThread IntentServiceService生命周期:只是用startService()启动服务:onCreate() -> onStartCommand() -> onDestory...原创 2019-09-08 18:32:08 · 210 阅读 · 0 评论 -
知识总结------contentProvider与contentResolver
ContentProvider需要自定义一个Class去继承(有的公司API可能会把ContentProvider改成一个abstract,此时就需要使用者灵活改变了),假设这个自定义的类名为myContentProvider,这个定义的类的作用就是为了向其他应用提供信息的类。类似于给BroadCastReciver发送广播通知的系统广播,myContentProvider就是向外散发一个信息,然...原创 2019-09-08 18:31:11 · 398 阅读 · 0 评论 -
知识总结-----Fragment
Fragment每个生命周期方法的意义、作用:setUserVisibleHint():设置Fragment可见或者不可见时会调用此方法。在该方法里面可以通过调用getUserVisibleHint()获得Fragment的状态是可见还是不可见的,如果可见则进行懒加载操作。onAttach():执行该方法时,Fragment与Activity已经完成绑定,该方法有一个Activity类型的...原创 2019-09-08 16:20:54 · 240 阅读 · 0 评论 -
知识总结------Activity
1,Activity的生命周期 正常情况下生命周期:oncreate--onStart--onResume--onPause--onStop--onDestory 异常情况下:onSaveInstanceState-onPause-onStop-onDestory 重建后onCreate--onRestoreInstanceState 系统资源不足会回收低优先级的activ...原创 2019-09-07 12:21:20 · 173 阅读 · 0 评论 -
知识总结------数据存储
1、SharePreferences适用情形?使用中需要注意什么?保存登录用户名密码等情形,应注意多进程并发读的时候数据可能不准确。需要注意:getSharedPreferences(“User”, Context.MODE_PRIVATE)方法中第二个参数需要了解Android的四种枚举方式下面是详细的解释:私有模式Context.MODE_PRIVATE 的值是 0;...原创 2019-09-07 12:13:12 · 165 阅读 · 0 评论 -
PreferenceScreen 偏好显示类 的使用
PreferenceScreen preference是偏好,首选的意思,PreferenceScreen个人翻译成 “偏好显示”,明白这个意思就好,就是说根据特点灵活的定义显示内容风格,一个屏幕可以包含多个风格,像系统自带的声音设置界面。实现这种显示效果其实很简单,只需要借助PreferenceScreen类即可。在项目资源文件中新建xml文件夹,在里面新建preferences.xm...转载 2019-07-08 16:47:18 · 1329 阅读 · 0 评论 -
安卓常见的UI布局及控件的使用
目录 布局的介绍: View类的常用xml属性: LinearLayout RelativeLayout Android UI控件及UI组件 基本控件:——TextView: 基本控件:——EditText: 基本控件:——Button: 在代码中设置View的常用xml属性及方法说明 一、布局的介绍:...原创 2019-07-08 16:27:31 · 9217 阅读 · 5 评论 -
Failed to transform file 'android.jar' to match attributes问题解决
最近在做项目中遇到一个问题,之前可以编译的项目突然出现了报错:Failed to transform file 'android.jar' to match attributes {artifactType=android-mockable-jar, returnDefaultValues=false} using transform MockableJarTransform网上现有方...原创 2019-04-15 17:09:09 · 19852 阅读 · 4 评论 -
AsyncTask,ThreadPoolExcutor,Service之间的关系与区别
AsyncTask是Google封装的一个异步处理类,通过实现内部的doInBackGround方法就能实现子线程进行耗时操作AsyncTask的简单实现 这是一个最简单的AsyncTask实现类,在需要进行耗时操作的地方进行调用即可,Google已经帮我们封装好了这样的一个类,可以直接进行使用,但是有优点就会有缺点,AsyncTask用的是核心机制是线程池机制,最多同时运...转载 2019-03-27 22:00:59 · 759 阅读 · 0 评论