安卓
weixin_38032755
这个作者很懒,什么都没留下…
展开
-
工作日志:Timer.schedule()的理解
1 schedule(TimerTask timerTask,long delay):延迟delay秒后执行timerTask,并没有重复执行 2 schedule(TimerTask timerTask,long delay,long period):延迟delay秒后执行timerTask,并且重复执行,重复执行周期是period转载 2017-11-28 18:10:10 · 232 阅读 · 0 评论 -
Android的消息机制
Handler是Android消息机制的上层接口。Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。Handler的主要任务是将一个任务切换到某个指定的线程中去执行。ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,在多个线程中互不干扰的存储和修改数据MessageQueue主要包括原创 2018-01-09 09:46:48 · 125 阅读 · 0 评论 -
ContentProvider的工作过程
通过ContentProvider的增删查改四个方法的任何一个都可以触发ContentProvider的启动过程,比如选query方法 1 通过acqureUnstableProvider或acquireProvider方法获取IContentProvider对象,最终的都是通过acquireProvider方法来获取ContentProvider。ApplicationContentResol原创 2018-01-04 17:49:27 · 254 阅读 · 0 评论 -
广播的工作过程
广播的动态注册过程 1 ContextWrapper的registerReceiver方法开始,但并没有真正实现2 具体实现是在ContextImpl的registerReceiver方法中,该方法调用该类的registerReceiverInternal方法3 在registerReceiverInternal方法中,调用getReceiverDispatcher方法重新创建了一个Receive原创 2018-01-04 14:37:27 · 490 阅读 · 0 评论 -
AsyncTask与MVP模式
AsyncTask是一种轻量级的异步任务类,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI,但并不适合进行特别耗时的任务 1 AsyncTask的类必须在主线程中加载 2 AsyncTask的对象必须在主线程中创建 3 execute方法必须在UI线程中调用 4 不要在程序中直接调用doInBackground等方法原创 2018-01-12 14:33:42 · 309 阅读 · 0 评论 -
Activity的工作过程
Activity的startActivity方法最终都会调用Activity的startActivityForResult方法 1在startActivityForResult方法中接着执行Instrumentation的execStartActivity方法 Instrumenttation可以认为是大管家,每个Activity都有一个Instrumentation对象的引用,但整个进程只有一原创 2017-12-27 15:00:38 · 164 阅读 · 0 评论 -
理解Window和WindowManager
Window的具体实现位于WindowManagerService中,WindowManager和WindowManagerService的交互是一个IPC过程Window有三种类型:应用Window,即对应一个Activity;子Window,不能单独存在,它需要附属在特定额父Window之中,如Dialog就是一个子Window;系统Window,是需要声明权限才能创建的Window,如Toas原创 2017-12-26 18:30:27 · 114 阅读 · 0 评论 -
安卓基础拾捡
1 通常Android Studio项目一共有3中依赖方式:本地依赖 库依赖和远程依赖 2 安卓系统构架: Linux内核(提供底层驱动:如:显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等) 系统运行库层:SQLite库提供数据库的支持,OpenGL|ES库提供3D绘图的支持、Webkit库提供浏览器内核的支持、运行时库(内核、Dalvik虚拟机原创 2017-12-18 13:41:48 · 282 阅读 · 0 评论 -
学习Android动画
View动画 View动画的四种变换:平移,缩放,旋转,透明度 属性动画 属性动画可以对任意对象的属性进行动画而不仅仅是View,属性动画从API 11才有,采用开源动画库nineoldandroid来兼容以前的版本。常见的动画类:ValueAnimator,ObjectAnimator和AnimatorSet 建议采用代码的方式实现属性动画 1 ValueAnimator:初始原创 2017-12-22 18:26:02 · 153 阅读 · 0 评论 -
工作日志:添加第三方源码到项目中
一 将源码文件拷贝到需要应用的项目中 二 修改项目中的setting.gradle文件:include ':app',':blelibrary',':sunshinelibrary' 三 修改app下的build.gradle文件,在dependencies内加入:compile project(':blelibrary') compile project(':sunshinelibrary')原创 2017-11-27 17:04:28 · 211 阅读 · 0 评论 -
工作日志:ButterKnife框架的理解与使用
ButterKnife框架的理解 ButterKnife是一个应用与android系统的View注入框架,可以减少大量的findViewById以及setOnClickListenerr代码 优势 1 代码清晰,可读性强 2 运行时 不会影响APP效率,使用配置方便 3 方便处理Adapter里的ViewHolder绑定问题 4 强大的Vi原创 2017-11-27 14:26:12 · 248 阅读 · 0 评论 -
数据存储方案:持久化技术
文件存储 1 Context类提供了一个openFileOutput()方法,用于将数据存储到指定的文件中,该方法返回看看一个FileOutputStream对象, 通过FileOutputStream对象构建一个OutputStreamWriter对象,再根据OutputStreamWriter对象构建一个BufferedWriter对象,根据BufferedWriter的write()方法的原创 2017-12-21 18:28:24 · 197 阅读 · 0 评论 -
Android的Drawable
Drawable表示可以在Canvas上进行绘制的抽象的概念,如常见的颜色和图片都可以是一个Drawable。常用与作为View的背景使用 优势:使用简单,比自定义View的成本低;占用空间小;Drawable独立与屏幕像素密度,直接定义在drawable目录中,无需添加屏幕密度资源修饰 1 BitmapDrawable与NinePatchDrawable表示一张图片,直接引用图片即可2 Sha原创 2017-12-21 14:02:46 · 145 阅读 · 0 评论 -
理解RemoteViews概念
1 RemoteViews提供了一组基础的操作用于跨进程更新它的界面 RemoteViews的作用是在 其他进程中显示并更新View的界面 RemoteViews主要用于通知栏和桌面小部件 通知栏和桌面小部件分别由NotifactionManager和AppWidgetManager管理 NotifactionManager和AppWidgetManager原创 2017-12-19 18:24:29 · 131 阅读 · 0 评论 -
桌面小部件的简单开发步骤
AppWidgetProvider是Android中提供的用于实现桌面小部件的类,其本质是一个广播,继承自BroadcastReceiver 一 、定义桌面小部件 1 在layout下新建一个xml文件,命名为widget.xml<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.a原创 2017-12-20 16:46:00 · 1445 阅读 · 0 评论 -
三、四章节重点
1 android:gravity用于指定文字在控件中的对齐方式 android:layout_gravity是指控件在布局中的对齐方式 2 百分比布局:PercentFrameLayout,PercentRelativeLayout,使用的时候需要添加依赖库:compile’com.android.support:percent:版本号’原创 2017-12-19 18:23:30 · 119 阅读 · 0 评论 -
工作日志:Map的一般用法
Map的一般用法 1.声明一个Map :Map map = new HashMap(); 2 .向map中放值 ,注意: map是key-value的形式存放的,如:map.put("mingzi","lihong"); 3 .从map中取值 :String str = map.get("sa").toString, 结果是: str = “lihong”4 .遍历一个map,从中取得key和va原创 2017-11-29 18:21:15 · 444 阅读 · 0 评论 -
FastJson的常用方法
Fastjson是java语言编写的JSON处理器 1、遵循http://json.org标准,被其官方网站收录为参考实现方式之一 2、功能强大,支持JDK的各种类型,包括基本的JavaBean,Collection,Map,Data,Enum,泛型 FastJson API的入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以用该类的静态方法直接完成 //下原创 2018-01-26 10:45:57 · 532 阅读 · 0 评论