自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 商城用用之分类模块

分类模块1、TypeFragment extends BaseFragment TypeFragment的布局文件是fragment_type.xml,其中使用第三方库FlycoTabLayout实现顶部导航;使用FrameLayout装载Fragment(ListFragment和TagFragment)2、ListFragment extends BaseFragment

2018-01-31 18:04:45 392

原创 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 558

原创 AsyncTask与MVP模式

AsyncTask是一种轻量级的异步任务类,可以在线程池中执行后台任务,然后把执行的进度和最终结果传递给主线程并在主线程中更新UI,但并不适合进行特别耗时的任务 1 AsyncTask的类必须在主线程中加载 2 AsyncTask的对象必须在主线程中创建 3 execute方法必须在UI线程中调用 4 不要在程序中直接调用doInBackground等方法

2018-01-12 14:33:42 313

原创 Android的消息机制

Handler是Android消息机制的上层接口。Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层的MessageQueue和Looper的支撑。Handler的主要任务是将一个任务切换到某个指定的线程中去执行。ThreadLocal是一个线程内部的数据存储类,通过它可以在指定的线程中存储数据,在多个线程中互不干扰的存储和修改数据MessageQueue主要包括

2018-01-09 09:46:48 149

原创 测试的基本方法

1 电脑安装驱动程序:两个2 手机通过APK包安装测试工具3 程序烧工具–>仅下载(不改参数)–>MultiPortFlashDownloadProject.exe,启动该程序后 设置端口:Option–>Set begin COM port; 添加文件:file–>Open Download Agent File(MultiPortDownloadProject_仅下载文件) 添加

2018-01-04 18:25:11 255

原创 ContentProvider的工作过程

通过ContentProvider的增删查改四个方法的任何一个都可以触发ContentProvider的启动过程,比如选query方法1 通过acqureUnstableProvider或acquireProvider方法获取IContentProvider对象,最终的都是通过acquireProvider方法来获取ContentProvider。ApplicationContentResol

2018-01-04 17:49:27 282

原创 广播的工作过程

广播的动态注册过程 1 ContextWrapper的registerReceiver方法开始,但并没有真正实现2 具体实现是在ContextImpl的registerReceiver方法中,该方法调用该类的registerReceiverInternal方法3 在registerReceiverInternal方法中,调用getReceiverDispatcher方法重新创建了一个Receive

2018-01-04 14:37:27 497

原创 Service的工作过程

Service分为两种工作状态:一是启动状态,主要用于执行后台计算;另一种是绑定状态,主要用于其他组件和Service的交互;两种状态可共存1 Service的启动过程从CotextWrapper的startService开始2 接着ContextImpl对象调用它的startService方法(从ContextWrapper到ContextImpl是设计模式中典型的桥接模式) startServ

2017-12-27 16:07:59 314

原创 Activity的工作过程

Activity的startActivity方法最终都会调用Activity的startActivityForResult方法 1在startActivityForResult方法中接着执行Instrumentation的execStartActivity方法 Instrumenttation可以认为是大管家,每个Activity都有一个Instrumentation对象的引用,但整个进程只有一

2017-12-27 15:00:38 175

原创 理解Window和WindowManager

Window的具体实现位于WindowManagerService中,WindowManager和WindowManagerService的交互是一个IPC过程Window有三种类型:应用Window,即对应一个Activity;子Window,不能单独存在,它需要附属在特定额父Window之中,如Dialog就是一个子Window;系统Window,是需要声明权限才能创建的Window,如Toas

2017-12-26 18:30:27 123

原创 学习Android动画

View动画 View动画的四种变换:平移,缩放,旋转,透明度 属性动画 属性动画可以对任意对象的属性进行动画而不仅仅是View,属性动画从API 11才有,采用开源动画库nineoldandroid来兼容以前的版本。常见的动画类:ValueAnimator,ObjectAnimator和AnimatorSet 建议采用代码的方式实现属性动画 1 ValueAnimator:初始

2017-12-22 18:26:02 165

原创 数据存储方案:持久化技术

文件存储 1 Context类提供了一个openFileOutput()方法,用于将数据存储到指定的文件中,该方法返回看看一个FileOutputStream对象, 通过FileOutputStream对象构建一个OutputStreamWriter对象,再根据OutputStreamWriter对象构建一个BufferedWriter对象,根据BufferedWriter的write()方法的

2017-12-21 18:28:24 204

原创 Android的Drawable

Drawable表示可以在Canvas上进行绘制的抽象的概念,如常见的颜色和图片都可以是一个Drawable。常用与作为View的背景使用 优势:使用简单,比自定义View的成本低;占用空间小;Drawable独立与屏幕像素密度,直接定义在drawable目录中,无需添加屏幕密度资源修饰 1 BitmapDrawable与NinePatchDrawable表示一张图片,直接引用图片即可2 Sha

2017-12-21 14:02:46 172

原创 桌面小部件的简单开发步骤

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 1475

原创 理解RemoteViews概念

1 RemoteViews提供了一组基础的操作用于跨进程更新它的界面 RemoteViews的作用是在 其他进程中显示并更新View的界面 RemoteViews主要用于通知栏和桌面小部件 通知栏和桌面小部件分别由NotifactionManager和AppWidgetManager管理 NotifactionManager和AppWidgetManager

2017-12-19 18:24:29 139

原创 三、四章节重点

1 android:gravity用于指定文字在控件中的对齐方式 android:layout_gravity是指控件在布局中的对齐方式 2 百分比布局:PercentFrameLayout,PercentRelativeLayout,使用的时候需要添加依赖库:compile’com.android.support:percent:版本号’

2017-12-19 18:23:30 124

原创 安卓基础拾捡

1 通常Android Studio项目一共有3中依赖方式:本地依赖 库依赖和远程依赖 2 安卓系统构架: Linux内核(提供底层驱动:如:显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等) 系统运行库层:SQLite库提供数据库的支持,OpenGL|ES库提供3D绘图的支持、Webkit库提供浏览器内核的支持、运行时库(内核、Dalvik虚拟机

2017-12-18 13:41:48 290

原创 工作日志: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 455

转载 工作日志: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 241

原创 工作日志:添加第三方源码到项目中

一 将源码文件拷贝到需要应用的项目中 二 修改项目中的setting.gradle文件:include ':app',':blelibrary',':sunshinelibrary'三 修改app下的build.gradle文件,在dependencies内加入:compile project(':blelibrary')compile project(':sunshinelibrary')

2017-11-27 17:04:28 220

原创 工作日志:ButterKnife框架的理解与使用

ButterKnife框架的理解 ButterKnife是一个应用与android系统的View注入框架,可以减少大量的findViewById以及setOnClickListenerr代码 优势 1 代码清晰,可读性强 2 运行时 不会影响APP效率,使用配置方便 3 方便处理Adapter里的ViewHolder绑定问题 4 强大的Vi

2017-11-27 14:26:12 256

原创 Git--版本控制工具学习笔记

Git–版本控制工具 的学习记录

2017-11-13 15:44:42 434

原创 Android BLE 蓝牙学习总结(二):手机作为中央BluetoothGatt的实现

一、创建中央基本概念 1.1、中央涉及的类有: 说明:为了拿到中央BluetoothGatt,需要经历以下过程: 1、先拿到BluetoothManager:bluetoothManager=(BluetoothManager)getSystemService(Context.BLUETOOTH_SERVICE); 2、再拿到BluetoothAdapter:blueto

2017-10-30 14:30:18 2409

原创 Android BLE 蓝牙学习总结(一):手机作为周边BluetoothGattServer的实现

低功耗蓝牙的基本概念: 在BLE协议中,有两个角色,周边(Periphery)和中央(Central)。周边是数据的提供者,中央是数据的使用和处理者。在Android SDK里面,Android4.3以后手机可以作为中央使用;Android5.0以后手机才可以作为周边使用,即此时的手机可以作为BLE设备(如可穿戴设备、手环、智能锁、心率测量仪等)来为中央提供数据。 一个中央可以同时连接多个周边,

2017-10-26 18:08:02 9626 3

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除