自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android Init进程解析init.rc

主要是通过该函数实现解析:在init.c中init_parse_config_file("/init.rc");int init_parse_config_file(const char *fn){ char *data; //读取文件的内容 data = read_file(fn, 0); if (!data) return -1; //真正解析的函数...

2018-06-23 16:44:47 360

原创 Notification和Ring分离——AudioService中的改动

在Android中,Stream的类型有以下11种: public static final int STREAM_VOICE_CALL = 0; public static final int STREAM_SYSTEM = 1; public static final int STREAM_RING = 2; public static final int STREAM_MUSIC = ...

2018-05-27 16:06:38 838

原创 SeekBarVolumizer.java

从类的名字上看,这个类应该是一个音量的SeekBar。1、对于SeekBar,需要着重关注的就是其三个回调函数。public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) { if (fromTouch) { postSetVolume(progress);...

2018-05-22 11:13:14 1841

原创 Android Watchdog

1、Watchdog,是什么?从代码上看,Watchdog,是一个线程,因为他是继承Thread类。 从功能上看,Watchdog就像它的名字一样,看门狗,功能是检测一些重要的系统服务(service)和线程(Thread)是否正常工作。2、 Watchdog是如何工作的?想要了解Watchdog是如何工作的,先要了解它的内部类HandlerChecker和一些重要的方法。HandlerCheck

2018-01-23 22:03:24 323

原创 Android Binder个人理解

Binder的定义:Binder可以说是Android中的一个类,从IPC角度,Binder可以是跨进程调用的一种方式,Binder也可以理解成一种虚拟的物理设备,他的设备驱动是dev/binder .Binder在AIDL中的应用:首先创建一个AIDL文件,编写相应接口。这时候Android Studio会为我们生成一个该AIDL对应的Java的一个接口。 ①首先该接口继承android.os.

2017-12-21 22:16:58 219

原创 android中的线程池

Android中的线程池分类:FixedThreadPool、CachedThreadPool、ScheduledThreadPool、SingleThreadExecutor。 FixedThreadPool:是一种线程数量固定的线程池,并且当线程处于空闲状态的情况下,它们也不会被回收,FixedThreadPool只有核心线程,并且不会被关闭,所以可以较快响应外界的请求。 CachedThr

2017-04-27 17:56:52 288

原创 AsyncTask的使用&&理解

AsyncTask定义:他是一个轻量级的异步任务类,可以在线程池中执行后台任务,并且将任务的执行进度和结果传递给主线程,并在主线程中更新UI,由此可见,AsyncTask中封装了Handler和Thread,对与Handler的消息传递机制可以参考http://blog.csdn.net/actor1999/article/details/70210901AsyncTask使用: AsyncTas

2017-04-26 18:44:02 329

原创 Activity生命周期

先直观地看一下Activity的生命周期的流程图,然后我们一个一个来说明每个方法在什么情况下被回调。onCreate():在Activity被创建的时候回调,这是生命周期的第一个方法,我们可以在这个方法里面加载界面布局资源,初始化Activity需要的数据。onRestart():在Activity从不可见变为可见时被调用。onStart():在Activity正在被启动的时候调用(这个

2017-04-24 10:41:42 318

原创 HandlerThread

我们在一个线程中使用Handler的步骤Looper.prepare()创建与当前线程绑定的LooperHandler handler = new Handler(Looper.myLooper())Looper.loop()开启循环访问消息队列对于Handler机制的原理,可以参考http://blog.csdn.net/actor1999/article/details/70210901

2017-04-17 16:42:39 524

原创 Handler机制

Android应用在启动的时候会开启一条主线程,也叫UI线程,在UI线程里面不能执行一些耗时操作,不然的话会使UI失去响应,会出现ANR。所以我们执行一些耗时操作(比如下载)的话需要另开子线程来执行,执行完成后可能需要更新UI(比如将下载下来的信息显示出来),但是Android只允许在主线程里面更新UI,因为UI线程是线程不安全的,这应该就是Handler机制产生的原因。 Looper、Handl

2017-04-17 16:02:35 296

原创 URI&&Service

URIUri:scheme + authority + path组成 Android规定secheme为:content:// authority:标识provider,系统通过authority来找到对应的Provider 我们开发Provider有两个步骤继承ContentProvider,重写相应方法在AndroidManifest.xml中配置Privider组件<provide

2017-04-14 17:03:04 422

原创 CursorLoader

LoaderManager,LoaderManager.LoaderCallbacks,CursorLoader学习LoaderManager:一个与Activity和fragment关联的抽象类,用来管理Loader(比如CursorLoader)实例的,每个Activity或fragment只能有一个LoaderManager. 启动Loader:getLoaderManger.initLo

2017-04-14 14:41:37 357

原创 RecyclerView

RecyclerView:可以实现类似ListView,GridView的功能, 从名字上看,他是一个回收的View,他里面有两个缓存,一个Scrap,另一个Recycle,Scrap缓存中存放的是这样的View,这些View是接下来要用的,并且里面的数据无需更改;而Recycle缓存里面存放的View为里面的数据需要重新绑定的。 当我们去获取一个新View的时候,RecyclerView会先去S

2017-04-01 17:35:31 367

原创 Intent基础知识

**intent:** 用来包装android应用的启动意图,我们启动一个组件(比如一个Acitivity)不是直接指向这个组件(Activity)而是用Intent来包装信息,然后根据Intent来启动。 因为我们要启动的组件不止一种,可能是Activity,Service…所以用Intent来统一封装。 Intent有7个需要了解的属性:Component、Action、Category、

2017-04-01 14:20:03 389

原创 git常用命令

创建版本库 切换到一个存放版本库的目录,执行git init 创建版本库后有两个选择: 1、将本地库的内容推送到远程库 a. 添加远程主机git remote add origin git@github.com:michaelliao/learngit.git b. git push -u origin master 将本地库的所有内容推送到远程库(-u 会把本地master分支和远程ma

2017-04-01 13:34:26 197

原创 android适配需要知道的一些概念

px:像素,屏幕上的点,最小的独立显示单位。 屏幕尺寸:屏幕对角线的长度,单位英寸。 屏幕分辨率:屏幕长、宽上的px数目比如1920 * 1080。 屏幕像素密度(dots per inch):一英寸的屏幕的像素点数目。 dp(dip):设备无关像素,在160dpi屏幕上,1dp = 1px。 知道dp的由来,px 与 dp的单位换算就很简单了, dx = density * dp;dp

2017-03-08 14:14:13 251

原创 ant编译Android项目的过程

1.用aapt工具打包资源文件,生成R.java2.处理AIDL文件,生成对应的.java文件,没有AIDL文件此步骤跳过3.编译.java文件生成.class文件4.将.class文件转换成.dex文件5.将1-4步骤的产物及lib库打包生成未签名的apk6.给未签名的apk签名7.将步骤6中的产物进行优化和对齐。对于用ant工具编译android APP:主要在项目的build.xlm进行各项配

2017-03-08 13:44:49 334

原创 ThreadLocal的一点个人理解

ThreadLocal工作原理

2016-08-04 17:37:04 449

原创 对普利姆算法的理解(大话数据结构)。

普利姆算法用来做什么?·要弄清楚普利姆算法的用途,首先要知道连通图是什么,连通图就是图中任一两点可达。·然后就是树的概念,这里的树不是数据结构的中的树,这里树的概念是:无环的连通图。·然后我们就可以来讲普利姆算法了,普利姆算法是用来求图的最小生成树(即最小权重生成树)的。他算法的思路是这样的:① 从图中任意找一个点,加入到最小生成树中;

2015-07-27 10:48:20 1077 3

原创 Android 实现Dialog横向铺满屏,有效果图。

效果如图,如果是你想要的就可以继续看下去啦。 首先是这个dialo的布局文件。<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/dialog_layout" android:l

2015-04-19 10:42:20 4796

原创 Android动态加载ListView的实现以及注意事项

做安卓开发的都知道,Android中的ListView的使用率是非常高的。像我经常要用到ListView,并且经常会遇到要动态加载Item的需求,比如说,我的情况是这样的,我现在要从后台拉出用户的列表来显示,然后需要显示的数据有1000条,那我不可能一下子就把1000条数据拉下来都显示吧,首先是这样子耗流量,其次是没必要,有时候用户只看前几条就不看了,重要的是,你一下子显示1000条数据可能会导致

2015-04-12 11:19:01 793

原创 android 获取手机的一些硬件信息

在开发app的时候,我们有时候需要获取手机的一些硬件信息,比如说imei,mac地址之类的,下面我给个示例。public class CommentUtil {    public static Context context;    public static Application application;        public static void setCo

2015-04-02 22:11:10 635

原创 ubuntu 下的java反编译工具,jad

到jad的官网上去下载jad附链接:http://varaneckas.com/jad/下载后解压到自己想要的路径,有两个文件,一个是叫jad(linux下的可执行文件),一个是txt后缀的。然后在/etc/profile添加jad的环境变量。打开终端,输入jad ,回车,如何出现的是一些操作的说明,那就安装成功了,如果报libstdc++-libc6.2-2.so.3: ca

2015-04-01 17:23:57 4400

原创 ubuntu下用apt-get安装apache2

在ubuntu下安装apache2很简单,只要用apt-get install apache2就可以了,安装完成后,在 /etc/apache2/路径下,有个apache2.conf,这就是apache2的配置文件。它的配置文件情况是这样的:将不同的配置信息拆开放到不同的文件中,然后载include到apache2.conf中,你在apache2中可以看到像这样的代码# Include

2015-04-01 09:35:09 8638

原创 无法识别enum类型的变量

//定义带属性的enum的时候,enum类必须要有个设置属性的构造器,和返回属性的方法。package com.mingwei.test;public class EnumTest {    enum WeekDayEnum {        Mon("one"), Tue("two"), Wed("three"), Thu("four"), Fri("five"),

2015-03-30 20:14:14 1827

空空如也

空空如也

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

TA关注的人

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