03 2017 档案
摘要:AtomicInteger,一个提供原子操作的Integer的类。在Java语言中,++i和i++操作并不是线程安全的,在使用的时候,不可避免的会用到synchronized关键字。而volatile修饰的变量作为共享变量。 来看AtomicInteger提供的接口。 //获取当前的值 public
阅读全文
摘要:在Java线程并发处理中,有一个关键字volatile的使用目前存在很大的混淆,以为使用这个关键字,在进行多线程并发处理的时候就可以万事大吉。 Java语言是支持多线程的,为了解决线程并发的问题,在语言内部引入了 同步块 和 volatile 关键字机制。 synchronized 同步块大家都比较
阅读全文
摘要:Android 应用程序获得版本号 Android 应用程序获得版本号 我们可以在AndroidManifest.xml中设置程序的版本号等,如android:versionName="1.0",那如果想在代码中获取这个版本号呢,可以用如下方法(这些修改版本号时只需要修改AndroidManifes
阅读全文
摘要:对apk进行系统签名 签名工具 网盘下载 ,需要Android系统的签名的文件 platform.x509.pem 和 platform.pk8 这个两个文件在Android源码中的 ./build/target/product/security 目录下 具体的使用方法: java -jar sig
阅读全文
摘要:设置系统日期时间和时区 设置系统的日期时间和时区,需要 系统权限和系统签名,android:sharedUserId="android.uid.system" 需要在manifest文件中添加相应的权限 <uses-permission android:name="android.permissio
阅读全文
摘要:监听应用程序的安装、卸载 在AndroidManifest.xml中注册一个静态广播,监听安装的广播 android.intent.action.PACKAGE_ADDED 监听程序卸载的广播 android.intent.action.PACKAGE_REMOVED ,在广播中一定要加上 <dat
阅读全文
摘要:Toast的基础用法 Toast toast = Toast.makeText(getApplicationContext(), "Normarl toast", Toast.LENGTH_SHORT).show(); Toast显示的位置通常情况下Toast显示在整个界面的底部水平中间的位置,但是
阅读全文
摘要:Collapsing Toolbar Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndroid Material风格的应用(三)--DrawerLayoutAndroid Mater
阅读全文
摘要:添加 FloatActionButton和SnackBar Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndroid Material风格的应用(三)--DrawerLayoutAn
阅读全文
摘要:添加RecyclerView Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndroid Material风格的应用(三)--DrawerLayoutAndroid Material风
阅读全文
摘要:添加抽屉导航 Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndroid Material风格的应用(三)--DrawerLayoutAndroid Material风格的应用(四)-
阅读全文
摘要:打造Material风格的Android应用 Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndroid Material风格的应用(三)--DrawerLayoutAndroid M
阅读全文
摘要:监控手机电量的变化和充电状态 在BatteryManager中有一个粘性广播,不需要BroadcastReceiver作为接收器,在注册时将传入null 从intent中就可以获取相关的电池的状态 当前电量 当前的充电状态 充电状态值: 当前的充电方式 充电的方式 监听充电状态的变化 可以通过注册静
阅读全文
摘要:Colorful (Github) Colorful简单实用,通过这个开源库可以通过编码的方式来改变应用的主题,不再需要定义不同的style 你需要改变主题的Activity必须继承CActivity 或者在 setContentView()之前调用下面的方法 也可以调用 Colorful.appl
阅读全文
摘要:使用Android Bluetooth APIs将设备通过蓝牙连接并通信,设置蓝牙,查找蓝牙设备,配对蓝牙设备 连接并传输数据,以下是Android系统提供的蓝牙相关的类和接口 BluetoothAdapter BluetoothDevice BluetoothSocket BluetoothSer
阅读全文
摘要:这篇文章主要给大家介绍了Android中的ListView如何滚动到指定的位置,文章给出了两种解决的方法,并给出详细的示例代码,相信会对大家的理解和学习很有帮助,有需要的朋友们下面来一起看看吧。 本文介绍的关于ListView移动到指定位置有两种方法,下面话不多说,直接来看示例代码: 1 listv
阅读全文
摘要:Service通常总是称之为“后台服务”,其中“后台”一词是相对于前台而言的,具体是指其本身的运行并不依赖于用户可视的UI界面,因此,从实际业务需求上来理解,Service的适用场景应该具备以下条件: 1.并不依赖于用户可视的UI界面(当然,这一条其实也不是绝对的,如前台Service就是与Noti
阅读全文
摘要:Android 6.0 扫描不到 Ble 设备需开启位置权限 之前做 Ble 开发都是在 Android 6.0 系统以下的版本中进行测试的,今天使用 Android 6.0 的设备测试的时候,发现扫描不到周围的 Ble 设备。后来发现 6.0 需要在应用运行过程中请求位置权限,并且还要打开位置。
阅读全文
摘要:二维码,我们也称作QRCode,QR表示quick response即快速响应,在很多App中我们都能见到二维码的身影,最常见的莫过于微信了。那么今天我们就来看看怎么样在我们自己的App中集成二维码的扫描与生成功能。OK,废话不多说,我们就开始做吧。 二维码的使用我主要想分为两部分来给大家介绍,一部
阅读全文
摘要:Drawable天天用,可你是否对Drawable家族有一个完整的认知?今天我们就来系统的学习一下Drawable的使用。 1.概述 用过Drawable的筒子都知道Drawable有很多种,有的时候Drawable是一张图片,有的时候Drawable是我们通过颜色构造出来的某种图形。最常见的自己构
阅读全文
摘要:Android系统带的传感器有很多种,最常见的莫过于微信的摇一摇了,那么今天我们就来看看Anroid中传感器的使用,做一个类似于微信摇一摇的效果。 OK ,废话不多说,我们就先来看看效果图吧: 当我摇动手机的时候这里的动画效果基本和微信上的动画效果一致,这里请大家自行脑补微信摇一摇画面。 那我们就动
阅读全文
摘要:ActiveAndroid是一个开源的数据库框架,使我们在Android中使用数据库变得更为简单,今天我们就来看看这个数据库框架的使用。 1.引入ActiveAndroid 首先创建我们自己的项目,在我们的项目中引入ActiveAndroid,引入ActiveAndroid需要我们修改两个地方,一个
阅读全文
摘要:TextInputLayout和FloatingActionButton都属于MD风格的控件,比起普通的EditText和Button、ImageButton,TextInputLayout和FloatingActionButton还是有很多炫酷的地方,今天我们就一起来看一下。 1.TextInpu
阅读全文
摘要:其实Android中自带的MediaPlayer本身就能播放在线视频,MediaPlayer结合SurfaceView播放在线视频也是不错的选择(如果你没有性能或者用户体验上的要求),关于MediaPlayer+SurfaceView播放在线视频我后面会给筒子们详细介绍,这里我想先说一下一个第三方的
阅读全文
摘要:关于自定义View,我们前面已经有三篇文章在介绍了,如果筒子们还没阅读,建议先看一下,分别是android自定义View之钟表诞生记、android自定义View之仿通讯录侧边栏滑动,实现A-Z字母检索、android自定义View之NotePad出鞘记。这三篇文章中所述的自定义View都还是比较简
阅读全文
摘要:Activity的转场动画很早就有,但是太过于单调,样式也不好看,于是Google在Android5.0之后,又推出的新的转场动画,效果还是非常炫的,今天我们一起来看一下。 1.旧转场动画回顾 首先我们还是先来看看在5.0之前如果我们想要在启动Activity时使用动画该怎么做呢? [java] v
阅读全文
摘要:CardView也是一个非常炫酷的控件,一般我们将CardView配合RecyclerView来使用,当然,CardView也可以配合ListView来使用,都是可以的。OK,我们先来看一张CardView+RecyclerView实现的效果图: 每一个item都是圆角的,而且还有阴影的效果,这也就
阅读全文
摘要:CoordinatorLayout,中文译作协调者布局,光听这名字你可能很难判断出协调者布局有什么特点,那么我们来看看下面一张图片: 由于CSDN对图片大小的要求,我只能录制一个快速播放的动画,请大家见谅。但是显示效果大家应该都看到了,就是当在页面的上方有一个图片,当底部的控件向上滑动时,上方的图片
阅读全文
摘要:导航菜单的制作方式多种多样,网上也有各种炫酷效果的具体实现方式,那么今天我主要是想来说说Google在Android5.0之后推出的NavigationView的具体使用方式。 NavigationView在很多App上都已经可以看到其效果图,国内的比如知乎(侧拉菜单滑出来的那一部分属于Naviga
阅读全文
摘要:Bitmap二次采样,听着好像是一个高大上的事,其实也就那么回事,今天我们就来看看Bitmap的二次采样问题。 1.为什么要二次采样 OK,那么首先我要 解决的一个问题就是为什么我们要二次采样? 不知道大家在开发App的过程中有没有遇到过类似于图片墙这样的功能?在做图片墙的时候你有没有遇到过OOM异
阅读全文
摘要:我们的手机通讯录一般都有这样的效果,如下图: OK,这种效果大家都见得多了,基本上所有的Android手机通讯录都有这样的效果。那我们今天就来看看这个效果该怎么实现。 一.概述 1.页面功能分析 整体上来说,左边是一个ListView,右边是一个自定义View,但是左边的ListView和我们平常使
阅读全文
摘要:现在我们的手机上基本都会有一个记事本,用起来倒也还算方便,记事本这种东东,如果我想要自己实现,该怎么做呢?今天我们就通过自定义View的方式来自定义一个记事本。OK,废话不多说,先来看看效果图。 整个页面还是很简单的。 1.自定义View的分类 OK,那么在正文开始之前,我想先来说说自定义View的
阅读全文
摘要:很多筒子觉得自定义View是高手的象征,其实不然。大家觉得自定义View难很多情况下可能是因为自定义View涉及到了太多的类和API,把人搞得晕乎乎的,那么今天我们就从最简单的绘图API开始,带大家来一步一步深入自定义View的世界。 先来看看我们今天要实现的一个效果图: 整个效果很简单,就是在屏幕
阅读全文
摘要:在使用Eclipse的时代,我们很少去在style文件给整个应用或者Activity去设定颜色,那是因为即使设置也不会提升用户的视觉效果。但是材料设计号称让没有设计功底的人也能做出漂亮的App,那我们今天就来看看在Androi5.0中常用的颜色属性。 我们可以先定义一个style,然后在这个styl
阅读全文
摘要:总体上来说,Toolbar的使用可以分为两个方面,一方面是将ToolBar当作ActionBar来用,另一方面就是将Toolbar当成一个单独的控件来用,不过到目前为止我见到的大部分情况都是把Toolbar当作ActionBar来用,下面我们分别就这两种使用方式来进行说明。 1.Toolbar作为A
阅读全文
摘要:LinearGradient我们可以将之译为线型渐变、线型渲染等,译成什么不重要,重要的是它的显示效果是什么样子,今天我们就一起来看看。 先来看看LinearGradient的构造方法: [java] view plain copy print? /** Create a shader that d
阅读全文
摘要:Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实现。 1. String转byte[] 首先我们来分析一下常规的String转byte[]的方法,代
阅读全文
摘要:Java语言中字符串类型和字节数组类型相互之间的转换经常发生,网上的分析及代码也比较多,本文将分析总结常规的byte[]和String间的转换以及十六进制String和byte[]间相互转换的原理及实现。 1. String转byte[] 首先我们来分析一下常规的String转byte[]的方法,代
阅读全文
摘要:java二进制,字节数组,字符,十六进制,BCD编码转换2007-06-07 00:17/** *//** * 把16进制字符串转换成字节数组 * @param hex * @return */ public static byte[] hexStringToByte(String hex) { i
阅读全文
摘要:本文转自:http://franksinger.iteye.com/blog/614540 Java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示(23 + 22 + 21 + 20 = 15),所以我们就可以把每个byte转换成两个相应的16进制字符,即把by
阅读全文
摘要:蓝牙自动配对,即搜索到其它蓝牙设备之后直接进行配对,不需要弹出配对确认框或者密钥输入框。 转载请注明出处http://blog.csdn.net/qq_25827845/article/details/52400782 源码下载地址:http://download.csdn.net/download
阅读全文
摘要:ServiceDiscoveryServerServiceClassID_UUID = '{00001000-0000-1000-8000-00805F9B34FB}' BrowseGroupDescriptorServiceClassID_UUID = '{00001001-0000-1000-8
阅读全文
摘要:package cn.madfinger.core; import java.io.IOException; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; import java
阅读全文
摘要:在Android程序中可以实现自动扫描蓝牙、配对蓝牙、建立数据通道。 蓝牙分不同类型,可以参考(http://gqdy365.iteye.com/admin/blogs/2229304) 可以入下面方法获取蓝牙设备支持的类型: Java代码 BluetoothDevice device; Array
阅读全文
摘要:/** * Created by rbq on 2016/11/1. */ import android.bluetooth.BluetoothAdapter; import android.bluetooth.BluetoothDevice; import android.bluetooth.le.BluetoothLeScanner; import android.bluetooth....
阅读全文
摘要:常见的蓝牙标准有2.0和4.0。 特点 2.0 1.适用于数据量比较大得传输,比如音乐、语音2.IOS开发中,要求设备是经过MFI认证 4.0 1.适用于实时性比较高的数据传输,比如遥控类的鼠标、键盘,传感设备的心跳计、血压计2.功耗低,距离短,轻量级 注意:一般我们说的蓝牙4.0都支持2.0和4.
阅读全文
摘要:iOS的SDK中提供很多原生ViewController,大大提高了我们的开发效率,下面是我的一些经验。 按结构可以对iOS的所有ViewController分成两类: 1、主要用于展示内容的ViewController,这种ViewController主要用于为用户展示内容,并与用户交互,如UIT
阅读全文