- 博客(81)
- 收藏
- 关注
原创 WiFiAdmin(WiFi管理工具类)
import android.content.Context;import android.net.wifi.ScanResult;import android.net.wifi.WifiConfiguration;import android.net.wifi.WifiInfo;import android.net.wifi.WifiManager;import java.lang.ref
2017-11-12 17:30:34
3635
原创 Android --- 常用的系统服务(二)
目前涉及的交互窗口Activity、 DialogWindowManager窗口管理器可以完成窗口的显示、 更新、 销毁的处理获取窗口管理器对象.private WindowManager wm;...//获取对象wm = (WindowManager) getSystemService(Context.WINDOW_SERVICE);初始化窗口的显示效果, 需要依赖于WindowManager
2017-11-12 17:03:36
359
原创 Android --- 常用的系统服务(一)
常用的系统服务ActivityManager、PackageManager、AlarmManager、AudioManager、WindowManager、SensorManager、NotificationManager、LayoutInflater……AlarmManager时钟管理器时钟类型:AlarmManager.RTC, 硬件闹钟, 不唤醒设备AlarmManager.RTC_WAKE
2017-11-12 16:54:31
1079
原创 Android --- WIFIUtils
import java.util.List;import android.content.Context;import android.net.wifi.ScanResult;import android.net.wifi.WifiConfiguration;import android.net.wifi.WifiConfiguration.KeyMgmt;import android.ne
2017-11-12 15:55:39
992
原创 Android --- WIFI(一)
WIFI就是一种无线联网技术,常见的是使用无线路由器。那么在这个无线路由器的信号覆盖的范围内都可以采用WIFI连接的方式进行联网。如果无线路由器连接了一个ADSL线路或其他的联网线路,则又被称为“热点”。在Android中对Wifi操作,android本身提供了一些有用的包,在android.net.wifi包下面,主要包括以下几个类和接口:1.ScanResult 主要用来描述已经检测出的
2017-11-12 15:53:08
423
原创 Android --- Bluetooth(基础蓝牙)
蓝牙简介蓝牙(Bluetooth)是一种短距离的无线通信技术标准。这个名子来源于10世纪丹麦国王 Harald Blatand,英文名子是Harold Bluetooth。在无线行业协会组织人员的讨论后,有人 认为用Blatand国王的名字命名这种无线技术是再好不过了,这是因为Blatand国王将挪威、瑞 典和丹麦统一起来,这就如同这项技术将统一无线通信领域一样。至此,蓝牙的名字也就这样 定
2017-11-08 20:25:33
255
原创 Android --- 进程(三)---自定义权限
自定义权限可以在 manifest 中 <application> 标签外使用 <permission> 申明自己的权限<permission android:name="com.xykj.permission.MUSIC" android:icon="@mipmap/ic_launcher" android:protectionLevel="normal" and
2017-11-08 20:18:18
546
原创 Android --- 进程(二)---进程通讯的回调处理
1 、在服务端定义一个回调的 aidl( 主要生成回调的 java 代码 )// IMusicCallback.aidlpackage com.xykj.musicserviceapp;interface IMusicCallback { void onDuration(int duration); void onCurrentPosition(int pos);}2 、在功能
2017-11-08 20:12:48
469
原创 Android --- 进程(一)---远程服务通讯 (AIDL)
Android使用AIDL和远程服务实现进程通信在Android中,每个应用程序都有自己的进程,当需要在不同的进程之间传递对象时,该如何实现呢?显然, Java中是不支持跨进程内存共享的。因此要传递对象,需要把对象解析成操作系统能够理解的数据格式,以达到跨界对象访问的目的。在JavaEE中,采用RMI通过序列化传递对象。在Android中,则采用AIDL(Android I
2017-11-08 20:04:14
222
原创 Android --- Service 应用
Service简介 Service是android 系统中的四大组件之一(Activity、Service、BroadcastReceiver、ContentProvider),它跟Activity的级别差不多,但不能自己运行只能后台运行,并且可以和其他组件进行交互。service可以在很多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,
2017-11-07 19:55:19
263
原创 Android --- 广播机制(BroadcastReceiver应用)
BroadcastReceiver简介BroadcastReceiver是用于接收广播的组件用于组件与组件之间进行通信,可以跨应用程序传递.如操作系统电池电量低会发送一个广播,这样我们的程序里面可以去监听这个广播,可以关闭程序里面比较耗电的功能,提示用户注意保存进度什么的,还如其它安装新应用等,还有普通应用程序,例如启动特定线程,文件下载完毕等。Android中的广播机制设计的
2017-11-07 19:11:18
312
原创 Android --- Extras(自定义类型传递对类型做序列化)
Extras序列化原因序列化的原因基本可以归纳为以下三种情况: 永久性保存对象,保存对象的字节序列到本地文件中; 对象在网络中传递; 对象在IPC间传递。序列化方法在Android系统中关于序列化的方法一般有两种,分别是实现Serializable接口和Parcelable接口,其中Serializable接口是来自Java中的序列化接口,
2017-11-06 20:18:11
1096
原创 Android --- 使用Intent传递对象的方式
Intent 内容ComponentName, 用来描述 Intent 中目标组件名应用内部Intent it = new Intent();// 组件信息//ComponentName cn = new ComponentName(this,Activity01.class);ComponentName cn = new ComponentName(this,"com.xyk
2017-11-06 20:03:15
214
原创 Android --- 多媒体应用 Camera(照相、摄影)
Camera一、摄像1 、打开摄像头private void openCamera(){ //获取摄像头数量 int size = Camera.getNumberOfCameras(); for (int i = 0; i<size;i++){ //获取摄像头的信息 Camera.Ca
2017-11-06 19:29:50
344
原创 Android --- 多媒体应用(MediaRecorder 录音)
MediaRecorder 录音的几个步骤:1 、创建 MediaRecorder 对象 ( 或者 reset) 处于 idle 状态2 、通过 setAudioSource 设置音频来源3 、 setOutputFormat 设置输出格式,建议 default4 、 setAudioEncoder 设置输出编码5 、设置输出位置 setOutputFile6 、准备
2017-11-05 16:22:12
289
原创 Android --- 多媒体应用(使用VideoView、TextureView播放视频)
在Android中提供了一个VideoView播放视频,用于播放视频文件,要想使用VideoView组件播放视频,首先需要在布局文件中创建该组件,然后在Activity中获取该组件,并用 setVideoPath() 方法或 setVideoURI() 方法加载要播放的视频,最后调用VideoView组件的 start() 方法来播放视频。在android中,还提供了一个可以与Vide
2017-11-05 16:00:10
1985
原创 Android --- 多媒体应用(SoundPool播放音频)
如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1) 延时时间较长,且资源占用率高。2) 不支持多个音频同时播放。Android中除了MediaPlayer播放音频之外还提供了SoundPool来播放音效,SoundPool使用音效池的概念来管理多个短促的音效,例如它可以开始就加
2017-11-05 15:41:44
361
原创 Android --- 多媒体应用开发(边下载边播放)
做音乐播放器,有时候会用到系统自带的mediaplayer播放器,这个播放器底层是在linux上面,封装了一些api供使用者调用,由于网络HTTP请求歌曲流这一块的都已经被封装了,所以要想实现歌曲边下载同时还能缓存到我们的文件夹中,需要做的就是从请求过程中间再开辟一个中间代理,通过代理去处理之间的输入输出流,同时在代理中实现本文的功能,这样就能实现我们想要的边下边播了。边下载边播放文件头部
2017-11-05 14:47:13
1064
原创 Android --- 共享数据 -- ContentResolver
简介:ContentProvider 是内容提供者 ContentResolver 内容解析者ContentProvider 在android中的作用是对外共享数据,也就是说你可以通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider 对你应用中的数据进行添删改查。关于数据共享,以前我们学习过文件操作模式,知道通过指定文件的操作模式为C
2017-11-02 19:51:51
423
原创 Android --- MediaPlayer的使用详解
Android的MediaPlayer包含了Audio和Video的播放功能,在Android的界面上,Music和Video两个应用程序都是调用MediaPlaer来实现的。首先看看MediaPlaer的生命周期实现流程 : Application–>Framework MediaPlayer.java–>jni–>Library MediaPlayer.cpp–> 解码 –>Driver–> 硬
2017-11-02 19:12:07
718
原创 数据持久化 ( 存储 )
XML–SharePreferrence保存位置为 :/data/data/ 应用包名 /shared_prefs/xml 文件存储://(xml 文件名 , 操作模式 )SharedPreferences sh = getSharedPreferences(XML_NAME, Context.MODE_PRIVATE);// 存储内容需要有 EditorSharedPreferences.E
2017-11-01 21:20:19
505
原创 Android --- WebView -- 混合开发(二)
Webview常用方法1、WebView的状态//激活WebView为活跃状态,能正常执行网页的响应webView.onResume() ;//当页面被失去焦点被切换到后台不可见状态,需要执行onPause//通过onPause动作通知内核暂停所有的动作,比如DOM的解析、plugin的执行、JavaScript执行。webView.onPause();//当应用程序(存在webview)被切
2017-11-01 20:58:22
236
原创 Android --- WebView -- 混合开发(一)
前言现在很多App里都内置了Web网页(Hyprid App),比如说很多电商平台,淘宝、京东、聚划算等等,这样在每过节假日的时候界面都会随时更换,大大减小了工作量,所以也应用的比较广泛,如下图:所以就引入Android里一个组件WebView来实现的,根据API的学习,介绍一下WebView的常用用法,大致结构如下图:WebView 内置了 Html 解析的组件,可以显示 Html 页面上的图像、
2017-11-01 20:29:09
440
原创 Android --- 布局结构属性(三)
EditText 的特殊监听// 输入框的 Enter 按键监听et.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { //action
2017-10-30 20:35:31
178
原创 Android --- 布局结构属性(二)
布局细节考虑兼容性: LinearLayout 因为有权重所以可以处理一些尺寸上的兼容, RelativeLayout 可以处理位置上的兼容另外两个基本布局TableLayout 继承 LinearLayout 的垂直布局, TableRow 继承 LinearLayout 的水平布局 ( 高版本有个 GridLayout) AbsoluteLayout :绝对布局, android:layout
2017-10-30 20:16:31
215
原创 Android --- 布局结构属性(一)
标签结构< 标签名 属性名 1=" 属性值 1" 属性名 2=" 属性值 3" 属性名 3=" 属性值 3"> < 标签名 属性名 1=" 属性值 1"... /> < 标签名 属性名 1=" 属性值 1"... ></ 标签名 ></ 标签名 >View 和 ViewGroup基本属性宽度: android:layout_width高度 :android:layout_
2017-10-30 20:07:14
228
原创 超级视图 --- RecycleView 的使用
//数据显示的RecyclerViewprivate RecyclerView mRecyclerView;mRecyclerView = (RecyclerView) view.findViewById(R.id.m_recycler);//设置显示布局管理器mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity(
2017-10-29 13:22:26
271
原创 Android --- 应用中全局变量的设置
应用中全局变量的设置1 、定义 App 类继承 Application ,定义成员变量提供 getter 和 setter ,那么该成员变量就可以被应用中所有的组件 (Activity,Service) 访问public class WeiBoApp extends Application { // 已登录的用户信息 private User loginUser; @Overr
2017-10-28 23:45:54
5799
原创 Android --- 内存中记录位图(图片三级缓存实现)
JsonObject ,描述大括号括起来的 json 内容JSONObject obj = new JSONObject(jsonStr);// 获取一个 int 值int code = obj.optInt("code");// 获取字符串String name = obj.optString("name);// 获取 json 数组JSONArray ary = obj.optJSO
2017-10-28 23:41:35
230
原创 ViewStub --- 视图的使用
在使用之前首先要知道什么是ViewStub?ViewStub其实本质上也是一个View,其继承关系如图所示: 为什么ViewStub可以提高加载性能?ViewStub使用的是惰性加载的方式,即使将其放置于布局文件中,如果没有进行加载那就为空,不像其它控件一样只要布局文件中声明就会存在。 那ViewStub适用于场景呢?通常用于网络请求页面失败的显示。一般情况下若要实现一个网络请求失败的页面,
2017-10-28 21:29:03
357
原创 TimeUtil --- 时间格式化工具
/** * 时间格式化工具 */public class TimeUtil { private static TimeUtil instance; private SimpleDateFormat sf; public TimeUtil(){ sf = new SimpleDateFormat(); } public static TimeUtil
2017-10-26 20:50:54
708
原创 Android --- Json解析
JsonObject ,描述大括号括起来的 json 内容JSONObject obj = new JSONObject(jsonStr);// 获取一个 int 值int code = obj.optInt("code");// 获取字符串String name = obj.optString("name);// 获取 json 数组JSONArray ary = obj.optJSO
2017-10-26 20:47:54
193
原创 Java --- 单例模式(二) 七种写法
第一种(懒汉,线程不安全):public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton getInstance() { if (instance == null) { insta
2017-10-26 20:43:40
190
原创 Java --- 单例模式(一)
在介绍之前先要知道,Java中为什么要使用单例模式? 1.什么是单例? 一个类在整个系统中只有一个实例,而且这个实例是在类的内部通过一个private的构造方法构造的,外部不能调用其构造方法,只能获取它的实例。 2.单例的类是怎样的?外部如何使用?public class SingleInstance { private static class InstanceHolder
2017-10-26 20:21:50
177
原创 Android --- 文本超链接 使用
类似于上图中 经常在微博中用到的 #文本超链接# 两个#号中间会有超链接的效果文本超链接1 、定义局部点击的块对象// 超链接的块对象ClickableSpan clickSapn = new ClickableSpan() { // 局部被点击时触发 @Override public void onClick(View widget) { Toast.mak
2017-10-26 20:13:11
2934
原创 Android --- 视图绘制监听
// 从视图上获取视图树观察者ViewTreeObserver vo = mainView.getViewTreeObserver();// 对视图监听即将绘制vo.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() {
2017-10-25 21:32:18
775
原创 用Base64Util加密工具的时候不能导包 sun.misc.BASE64Encoder 的jar包问题
*问题:BASE64Encoder encoder = new BASE64Encoder(); 导不出来包报错的问题 在MyEclipse中用到了BASE64Decoder类,也没办法import sun.misc.BASE64Decoder; Eclipse提示如下: Access restriction: The type BASE64Decode
2017-10-25 21:17:02
1130
原创 Md5Util 加密工具类
在各种应用系统的开发中,经常需要存储用户信息,很多地方都要存储用户密码,而将用户密码直接存储在服务器上显然是不安全的,本文简要介绍工作中常用的 MD5加密算法,希望能抛砖引玉。(一)消息摘要简介一个消息摘要就是一个数据块的数字指纹。即对一个任意长度的一个数据块进行计算,产生一个唯一指印(对于SHA1是产生一个20字节的二进制数组)。消息摘要是一种与消息认证码结合使用以确保消息完整性的技术。主要使用单
2017-10-25 20:56:16
13157
原创 客户端 网络请求封装类 --- HttpManger
客户端进行网络请求,也是常用的一个工具类,所以封装起来用到的时候就可以使用了package utils;import java.io.BufferedReader;import java.io.DataOutputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.
2017-10-25 20:46:39
894
原创 Android 中 clipChildren 属性的用法
实现上图的布局方式代码<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_heigh
2017-10-25 20:32:35
228
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人