自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

WangShuo的专栏

不积跬步,无以至千里;不积小流,无以成江海!

  • 博客(140)
  • 资源 (5)
  • 收藏
  • 关注

原创 Android Wifi框架流程分析

//在 SystemServer 启动的时候,启动WifiService调用关系如下:public static void main(String[] args) { new SystemServer().run(); }private void run() {……startOtherServices();……}startOtherServices(){...

2017-03-31 19:17:00 6305

原创 最新整合maven+SSM+Tomcat 实现注册登录

mybatis学习 http://www.mybatis.org/mybatis-3/zh/index.html Spring学习:http://blog.csdn.net/king1425/article/details/65631607 SpringMVC学习:http://blog.csdn.net/king1425/article/details/68922706先看效果: 之后会有

2017-03-31 17:41:14 32371 22

原创 最全面SSM三大框架之Spring MVC篇

Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。先看项目目录,基于此目录配置: Spring MVC之使用配置:Spring-MVC.xml<?xml

2017-03-31 10:52:29 7993

原创 SMS发送接收流程

1.短信发送的起点是在短信编辑界面,点击发送按钮开始的public class ComposeMessageActivity extends Activity ...{.... public void sendMessage(boolean bCheckEcmMode) { .... //这里面准备发送的数据处理,比如生成PDU数据,存

2017-03-24 16:57:03 6166

原创 SSM三大框架之Spring篇

spring是一个提供了解决J2EE问题的一站式框架。框架优点轻量级的容器框架没有侵入性使用IoC容器更加容易组合对象直接间关系,面向接口编程,降低耦合DI(依赖注入)Aop可以更加容易的进行功能扩展,遵循ocp开发原则创建对象默认是单例的,不需要再使用单例模式进行处理概念理解:IoC(控制反转)  首先想说说IoC(Inversion of Control,控制反转)。这是spring的核心,贯

2017-03-24 15:35:54 2503 2

原创 通话模块性能优化分析

Android 5.0对Phone模块进行了重构,但在后续的使用中发现,MO发起过程中InCallActivity加载较慢,且在Qcom和MTK等芯片厂商加入双卡设置后,用户点击拨号按钮后需要等5s左右才能看到通话界面。在分析与解决该问题的过程中Google悄然发布了Android 5.1,其中对InCallActivity启动较慢的问题行了一些优化,下面对通话模块性能优化进行相应的分析和总结。A

2017-03-23 18:16:57 1430

原创 关于 Android中的插件化开发,dex分包,热修复(Tinker)的思考(二)

插件化开发的主要原理就是动态加载技术。上文已经对动态加载DexClassLoader进行了解析今天要讲的是动态加载技术的亲戚 —— MultiDex。他们的核心原理之一都是dex文件的加载。先来理解概念 MultiDexMultiDex是Google为了解决“65535方法数超标”以及“INSTA

2017-03-17 18:01:57 2279

原创 关于 Android中的插件化开发,dex分包,热修复(Tinker)的思考(一)

插件化开发优点: 一. 来可以将自己的应用分拆,某些功能可以在插件中实现,用到时再进行下载,而且不用安装. 如果有新功能的添加,不需要更新应用,只要预留插件管理,我们就可以通过添加插件的方式,动态更新自己的应用,该功能需要改进或扩展,更新插件即可,无需频繁安装或卸载(容易造成用户反感).二. 对应同系应用,正常的引流方式只能引导用户进行新应用的下载和安装,如果使用插件化

2017-03-17 16:56:11 1112

原创 Android数据库SQLCipher加密解密

简介:SQLCipher是一个在SQLite基础之上进行扩展的开源数据库,它主要是在SQLite的基础之上增加了数据加密功能,如果我们在项目中使用它来存储数据的话,就可以大大提高程序的安全性。 Android客户端集成sqlcipher 加密数据库步骤: 1, 下载sqlcihper工具包,下载地址: https://s3.amazonaws.com/sqlcipher/SQLCipher+

2017-03-16 14:29:48 3590

原创 Camera开发常见专业术语名词解释

相机常见专业术语名词解释 1、 、 ISO: 感光度 就是CMOS(或胶卷)对光线的敏感程度,如果 用ISO100的感光片,相机2秒可以正确曝光的话, 同样光线条件下 用ISO200的只需要1秒即可,用ISO400则只要0.5秒 通常表示:ISO100, ISO200, ISO400… 2 、 AE(Auto Exposure) :自动曝光 就是相机根据光线条件自动来调整曝光时间等来确定

2017-03-15 14:44:35 3480 1

原创 Android Behavior详解

Behavior是Android新出的Design库里新增的布局概念。Behavior只有是CoordinatorLayout的直接子View才有意义。可以为任何View添加一个Behavior。 Behavior是一系列回调。让你有机会以非侵入的为View添加动态的依赖布局,和处理父布局(CoordinatorLayout)滑动手势的机会。如果我们想实现控件之间任意的交互效果,完全可以通过自定义

2017-03-13 18:24:37 12360

原创 Android NestedScrolling,NestedScrollingParent,NestedScrollingParentHelper解析

在这之前,我们知道Android对Touch事件的分发是有自己一套机制的。主要是有是三个函数:dispatchTouchEvent、onInterceptTouchEvent和onTouchEvent。这种分发机制有一个漏洞:如果子view获得处理touch事件机会的时候,父view就再也没有机会去处理这个touch事件了,直到下一次手指再按下。事件分发是这样的:子View首先得到事件处理权,处理

2017-03-13 12:24:37 3611 1

原创 Android 5.X之Ripple,Palette的详解

Android 5.x 提供了视图的水波纹效果, RippleDrawable 实现。RippleDrawable特性: 自定义触摸反馈动画 以波纹效果来显示状态变化的 Drawable ripple 标签即对应一个 RippleDrawable使用:在V21中新建XML文件:<?xml version="1.0" encoding="utf-8"?> <ripple xmlns:andr

2017-03-03 12:17:33 933

原创 悬窗播放视频,让你聊天看视频两不误(下)

下面实现最小化悬窗,点击继续悬窗播放,拖动小火箭效果。 这部分代码借鉴了网上的小火箭效果 点击悬窗视频的一个按钮启动另一个server。展现小按钮图标。case R.id.iv_small: MyApplicaton.setValueProgress(valueProgress); onExit(); Intent

2017-03-02 16:09:35 3364

原创 悬窗播放视频,让你聊天看视频两不误(上)

当年的毕业设计拿出来记录一下,实现效果图如下:视频播放用的是vitamio框架。这里只讨论实现悬浮窗播放视频的思路1.点击视频播放器中的悬窗按钮,开启悬窗播放模式。这里启动了一个后台server。 先进入Home桌面,然后启动MediaPlaybackService Intent intent = new Intent(); intent.setAction(Int

2017-03-02 15:34:25 4918 1

原创 重写已被弃用的Gallery

公司以前的Camera项目使用了Gallery,该控件存在问题,有些偶现Bug无法解决。比如 狂点+滑动 会偶现错乱。Gallery原生方法未加锁同步,又不可重写,导致该Bug不可控。当用户点击又滑动的时候,下面这两个方法就一起调用,偶现Position错乱 mGalleryView.setOnItemClickListener(new OnItemClickListener());

2017-03-01 14:41:27 1262

原创 自定义ViewGroup动态添加删除Tab

公司的手机OS升级,在最新的Camera拟用这样的交互。感觉还不错。 思路: 1.ViewGroup中包含imageView按钮,根据显示的个数动态计算布局,在onLayout中重新排布ImageView的位置。 2.重新排布ImageView的位置的时候使用动画,动画需要坐标即需要自定义ImageView添加位置属性。 3.提供给外界方法

2017-02-28 15:40:54 1347

原创 仿KKCamera控件

实现效果如图: 思路: 上方是一个LinearLayout,里面放了4个自定义按钮。 下方是一个自定义seekbar先来实现自定义按钮public class IconCustomPreference extends RelativeLayout{ private Drawable mMainIconSrc = null; private Drawable mSubIco

2017-02-27 17:24:05 554

原创 Android material design(下)

CardView是实现卡片式布局效果的重要控件,和CoordinatorLayout一样也是一个特殊的FrameLayoutCardView_cardBackgroundColor 设置背景色CardView_cardCornerRadius 设置圆角大小CardView_cardElevation 设置z轴阴影CardView_cardMaxElevati

2017-02-27 15:21:14 780

原创 Android material design(上)

Material Design,中文名:材料设计语言,是由Google推出的全新的设计语言,谷歌表示,这种设计语言旨在为手机、平板电脑、台式机和“其他平台”提供更一致、更广泛的“外观和感觉”。 回顾上篇demo:http://blog.csdn.net/king1425/article/details/53445455android.support.design.widget.TextInputL

2017-02-27 14:45:51 560

原创 android 通讯相关,MTK平台

IMSI共有15位,其结构如下:MCC+MNC+MSIN ,(MNC+MSIN=NMSI) MCC:Mobile Country Code,移动国家码,MCC的资源由国际电联(ITU)统一分配和管理,唯一识别移动用户所属的国家,共3位,中国为460;   MNC:Mobile Network Code,移动网络码,共2位,中国移动TD系统使用00,中国联通GSM系统使用01,中国

2017-02-27 10:53:58 889

原创 android传感器

1 加速度传感器 TYPE_ACCELEROMETER 2 温度传感器 TYPE_AMBIENT_TEMPERATURE 3 陀螺仪传感器 TYPE_GYROSCOPE 4 光线传感器 TYPE_LIGHT 5 磁场传感器 TYPE_MAGNETIC_FIELD 6 压力传感器 TYPE_PRESSURE 7 临近传感器

2017-02-25 17:11:41 751

原创 仿QQ天气预报UI

效果图如下: 图片有些拉伸,可换一套适合的图片,或者计算坐标把图片限定在一个box内,这里我就不处理了。使用模拟天气数据public static final String wees[]={"今天","星期二","星期三","星期四","星期五"}; public static final String dayWeather[]={"晴天","小雨","小雨","中雨","小雨"};

2017-02-25 16:45:40 1452

原创 仿华为天气预报UI

近来公司事前较少,再来找几个有意思的View练练手,下面是原生华为天气预报界面: 下面是仿的UI交互效果:**思路: 1.平移画布到View中心,先绘制一个圆弧,绘制中间文字 2.旋转画布,绘制小短线,同时绘制中间的温度和下边的图片 3.确定0摄氏度的位置,确定每日温差之间共覆盖多少角度 4.算出最小温度的起始角,根据cos

2017-02-25 16:20:09 5775 14

原创 android权限请求

import android.content.DialogInterface;import android.content.Intent;import android.content.pm.PackageManager;import android.net.Uri;import android.os.Build;import android.os.Bundle;import androi

2016-12-14 15:02:35 1074 1

原创 EventBus使用

MainActivity中XML:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_h

2016-12-03 17:15:58 486

原创 Glide使用

case R.id.button1://加载图片 Glide.with(MainActivity.this) .load("http://pic.nipic.com/2007-12-22/2007122215556437_2.jpg")//加载的图片地址 .placeholder(R.drawable.ic_launcher)//

2016-12-03 17:09:07 528

原创 GreenDao封装使用

case R.id.add: //添加数据 Person item=new Person(null,"wang","18"); PersonHelper.getInstance(this).addInfo(item); break; case R.id.delete://删除id是1的数据

2016-12-03 17:07:19 2020

原创 TabLayout与ViewPager组合

import android.os.Bundle;import android.support.design.widget.TabLayout;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.View

2016-12-03 16:30:34 495

原创 android之DesignSupport

上图: import android.os.Bundle;import android.support.design.widget.CollapsingToolbarLayout;import android.support.design.widget.CoordinatorLayout;import android.support.design.widget.FloatingActionB

2016-12-03 16:21:06 524

原创 Camera基本开发知识

加权限;如API23及以上,要请求权限 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.CAMERA" /> 1:调用系统相机 Intent intent=new Intent(M

2016-12-03 15:59:01 2027 3

原创 android自定义View——等级滑动条

先看效果,用豌豆荚演示功能做的Gif,比较卡顿 思路: 首先绘制直线,然后等分直线绘制点; 绘制点的时候把X值存到集合中。 然后绘制背景图片,以及图片上的数字。 点击事件down的时候,换小图片为大图片。move的时候跟随手指移动。 up的时候根据此时的X计算最近的集合中的点,然后自动吸附回去。1,自定义属性<?xml version="1.0" encoding="utf-8"?><

2016-12-03 15:02:06 2490 1

原创 Android之自定义ViewGroup经典例子

流式布局:FlowGroupViewimport java.util.ArrayList;import java.util.List;import android.annotation.SuppressLint;import android.content.Context;import android.util.AttributeSet;import android.util.Log;im

2016-11-06 16:08:27 719

原创 Android之微信图片加载

MainActivityimport java.io.File;import java.io.FilenameFilter;import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.HashSet;import java.util.List;import ja

2016-11-05 17:03:57 1119

原创 RecyclerView使用Dome

很好理解,套用即可import com.example.recyclerview.SimpleAdapter.OnItemClickListener;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.support.v7.widget.Default

2016-11-05 15:27:22 692

原创 ArrayUtils,ListUtils,MapUtils,ObjectUtils,SystemUtils

ArrayUtils数组工具类,可用于数组常用操作,如: isEmpty(V[] sourceArray) 判断数组是否为空或长度为0 getLast(V[] sourceArray, V value, V defaultValue, boolean isCircle) 得到数组中某个元素前一个元素,isCircle表示是否循环 getNext(

2016-11-05 09:42:52 2309

原创 Android工具类之StringUtils,RandomUtils,SerializeUtils,JSONUtils

String工具类,可用于常见字符串操作,如: isEmpty(String str) 判断字符串是否为空或长度为0 isBlank(String str) 判断字符串是否为空或长度为0 或由空格组成 utf8Encode(String str) 以utf-8格式编码 capitalizeFirstLetter(String s

2016-11-05 09:33:42 1357

原创 Android开发工具类之FileUtils,ImageUtils

文件工具类,可用于读写文件及对文件进行操作。如: readFile(String filePath) 读文件 writeFile(String filePath, String content, boolean append) 写文件 getFileSize(String path) 得到文件大小 deleteFile(Stri

2016-11-05 09:25:44 2308

原创 Android快速开发之PackageUtils,PreferencesUtils

Android包相关工具类,可用于(root)安装应用、(root)卸载应用、判断是否系统应用等,如:install(Context, String) 安装应用,如果是系统应用或已经root,则静默安装,否则一般安装 uninstall(Context, String) 卸载应用,如果是系统应用或已经root,则静默卸载,否则一般卸载 isSystemApplication(Context, Str

2016-11-05 09:20:51 1947

原创 Android工具类之ShellUtils

Android Shell工具类,可用于检查系统root权限,并在shell或root用户下执行shell命令。如: checkRootPermission() 检查root权限 。execCommand(String[] commands, boolean isRoot, boolean isNeedResultMsg) shell 环境执行命令,第二个参数表示是否root权限执行 execC

2016-11-05 09:14:11 8228 4

SSM+maven+邮箱激活账号

maven+SSM+邮箱注册激活账号

2017-03-31

camera dome

拍照,录像,前后摄像头,闪光灯,预览比例,相片质量。

2017-02-25

gson,Volley

gson,Volley库

2016-11-02

Zing二维码精简库

Zing二维码精简库,体积小,可直接套用

2016-11-02

ant以及UiAutomatorHelper封装test封装

集成封装了UiAutomatorHelper.java和test.java,我们只需要在第四步写测试步骤,后期的各种命令行输入都不需要了

2016-10-29

空空如也

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

TA关注的人

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