
Android
文章平均质量分 71
yurh
这个作者很懒,什么都没留下…
展开
-
Android消息机制
android消息机制指Handler的运行机制1、为什么使用HandlerHandler是Android消息机制的上层接口,通过Handler可以轻松的将一个任务切换到Handler所在的线程中去执行,常常被用来更新UI,使用场景:在子线程中执行耗时任务,然后通过Handler切换到主线程来改变UI(Android规定只有在主线程中访问UI控件,如果在子线程中访问会抛出异常,为什么子线程不能访问...原创 2018-03-09 21:50:33 · 149 阅读 · 0 评论 -
保证Service不被杀死的几种方案!!!
项目需求:使用服务实现定时,但是由于内存有限,服务经常被后台杀死,导致定时失效原创 2018-06-13 10:06:37 · 219 阅读 · 0 评论 -
Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案
转载:https://blog.youkuaiyun.com/starry_night9280/article/details/53207928在windows上 使用Git bash遇到的问题,git add时提示:Git warning:LF will be replaced by CRLF in readme.txt的原因与解决方案参看stackoverflow回答:http://stackoverfl...转载 2018-06-06 17:20:04 · 164 阅读 · 0 评论 -
Binder学习
转载https://blog.youkuaiyun.com/freekiteyu/article/details/70082302转载https://blog.youkuaiyun.com/freekiteyu/article/details/70082302转载https://blog.youkuaiyun.com/freekiteyu/article/details/70082302Android-Binder进程间通讯机制概述...转载 2018-06-07 14:36:33 · 157 阅读 · 0 评论 -
AIDL编译错误: 'aidl.exe'' finished with non-zero exit value 1
在学习AIDL时,实现服务端后,将服务端ADIL接口拷贝到客户端时编译出现错误:Process 'command 'D:\ProgramFiles\Android\Sdk\build-tools\27.0.3\aidl.exe'' finished with non-zero exit value 1在网上查了一些资料后,没有找到能符合我自己情况的答案,不过基本可以肯定的是AIDL文件有错误,收集...原创 2018-06-08 14:24:48 · 6543 阅读 · 1 评论 -
Install APK failure Error:INSTALL_FAILED_INVALID_URI
执行adb push XXXX.apk /data/local/tmpadb shell pm install -r -t /data/local/tmp/XXXXX.apk正确但是:adb shellcd /data/local/tmp/pm install -r -t ./XXXX.apk失败解决:使用完整路径原创 2018-06-27 15:29:46 · 942 阅读 · 0 评论 -
Activity的启动过程
简单阐述Activity工作启动原理:Acitivity.javapublic void startActivityForResult(@RequiresPermission Intent intent, int requestCode, @Nullable Bundle options) { if (mParent == null) { ...原创 2018-07-03 15:58:48 · 287 阅读 · 0 评论 -
Service的启动过程
Service有两种工作状态:1.启动状态,主要用于执行后台计算2.绑定状态,主要用于其他组件和Service交互两种工作状态是可以共存的Service的启动是从下面开始的:public class Activity extends ContextThemeWrapper implements LayoutInflater.Factory2, Window.Call...原创 2018-07-04 13:52:12 · 240 阅读 · 0 评论 -
Service的绑定过程
Service的绑定过程是从这里开始的:ContextWrapper.java @Override public boolean bindService(Intent service, ServiceConnection conn, int flags) { return mBase.bindService(service, conn, fl...原创 2018-07-04 16:12:27 · 837 阅读 · 0 评论 -
BroadcastReceiver的工作过程
主要三个方面的内容:如何使用BroadcastReceiver,BroadcastReceiver注册过程,发送消息和接收消息的过程1.如何使用 public abstract class BroadcastReceiver public class MyReceiver extends BroadcastReceiver { public MyReceiver()...原创 2018-07-04 16:46:49 · 203 阅读 · 0 评论 -
ContentProvider的启动过程
本文根据Android开发艺术探索整理所得,参考代码Android4.0首先了解一下应用的启动1.应用的启动一个Android应用的启动入口是ActivityThread.main函数ActivityThread.java public static void main(String[] args) { // 应用入口函数 Trace.traceBegin(Trace....原创 2018-07-05 16:15:27 · 452 阅读 · 0 评论 -
Android8.0 蓝牙进程与蓝牙堆栈通信源码分析
一、概述我们知道android8.0蓝牙架构如图,其中蓝牙进程通过JNI与蓝牙堆栈bluedroid通信,同时bluedroid向上层提供接口,总体流程是蓝牙进程通过JNI调用bluedroid提供的HAL接口来实际操作蓝牙,并设置java层回调传给HAL层,HAL层通过回调通知上层结果,下面分析android bluetooth源码(8.0) 二、每一层提供的接口Apps通过...原创 2018-10-18 18:51:45 · 3581 阅读 · 5 评论 -
Android Drawable
来自android开发艺术探索Drawable:可拉伸的,表示一种可以在Canvas上进行绘制的抽象概念,常见的颜色和图片都是一个DrawableDrawable的优点:使用简单,比自定义View成本低,非图片类型的Drawable占用空间小,有助于减小apk大小什么是Drawable表示一种图像的概念,可以是图片,也可以通过颜色构建一个Drawable,实际中,Drawable常...原创 2018-10-18 22:23:33 · 369 阅读 · 0 评论 -
Android8.0蓝牙配对失败和配对分析
引入工作中接触到蓝牙,最近遇到一个非常头疼的问题,厂家自动化测试平台根据MAC向我们的机车端发起蓝牙连接的时候总是失败,log中显示如下一段:I/bt-btm ( 3115): btm_simple_pair_complete() Pair State: 4 Status:5 sec_state: 0// platform/system/bt/stack/btm/btm_int...原创 2018-10-22 14:11:48 · 3466 阅读 · 0 评论 -
Android IPC之Binder连接池BinderPool
通常情况下,在使用AIDL时,一个Service需要创建一个AIDL接口,在Service中创建一个类集成AIDL接口中的Stub并实现抽象方法,在onBind中返回该类实例,然后在Client中绑定服务,建立连接后可以访问Service中方法,即在一个Service中只能返回一个业务调用的Binder。当多个业务模块都需要使用AIDL时(如50个,100个),如果创建多个Service会消耗大量...原创 2018-06-12 18:38:25 · 701 阅读 · 0 评论 -
AS报错Unsupported method: BaseConfig.getApplicationIdSuffix()
今天打開一個新的項目,build.gradle sync時報錯:Unsupported method: BaseConfig.getApplicationIdSuffix().The version of Gradle you connect to does not support that method.To resolve the problem you can change/upgrade ...原创 2018-05-15 18:07:54 · 1353 阅读 · 0 评论 -
View的事件分发机制
1、概述View的事件分发机制是指点击事件MotionEvent的分发过程,一旦一个MotionEvent产生,必须要传递给一个具体的View去处理,这个分发过程就是View的事件分发机制,与下面三个函数密切相关public boolean dispatchTouchEvent(MotionEvent ev); //用来分发事件,当前view一定会调用,返回结果受当前view的onTouchEve...原创 2018-03-09 23:53:34 · 208 阅读 · 0 评论 -
View测量,布局,绘制三大流程
Measure过程:View方法:1.public final void measure(int widthMeasureSpec, int heightMeasureSpec) { ………..int cacheIndex = forceLayout ? -1 :mMeasureCache.indexOfKey(key);if (cacheIndex < 0 || sIgnoreMeasur...原创 2018-04-15 17:35:49 · 383 阅读 · 0 评论 -
开发环境配置(as+jdk+git+使用第三方库)
之前开发环境是ubuntu系统下TV app,现在过渡到win10系统下phone app开发,记录一下搭建开发环境过程和遇到的一些问题1、安装android studio 3.0.1安装android studio3.0.1,并下载android sdk,在terminal中输入命令显示“不是内部或外部命令,也不是可执行文件...”系统环境变量path添加路径/android sdk/platf...原创 2018-04-10 14:55:10 · 567 阅读 · 0 评论 -
Window和WindowManager
1、什么是Window和WindowManagerWindow是一个抽象类,表示一个窗口,Android中所有的视图都是通过Window来呈现的,不管是Activity,Dialog,Toast,它们的视图都是附加在Window上的,Window是View的直接管理者Window的唯一子类是PhoneWindow,WindowManager是外界访问Window的入口。Window有三种类型,分别...原创 2018-03-28 14:04:52 · 175 阅读 · 0 评论 -
MVC、MVP架构的理解
一、MVC三层:model(网络请求,读取数据库等操作)、view(视图层,Layout布局文件)、controller(控制层,对应Activity对UI的各种操作),MVC架构清晰,容易理解,我们一般常用的架构模式,最大的缺点是View层对model层有依赖,view和controller也无法分开,view层也含有业务逻辑,activity不仅需要请求业务逻辑,而且数据变化后还要控制view...原创 2018-04-10 22:56:41 · 216 阅读 · 0 评论 -
Android的Service
1、什么是Service四大组件之一,无用户界面,在后台运行,生命周期长2、Service生命周期Service两种启动方式:StartService和bindService生命周期如上图两种启动方式的区别:(1)startService采用start的方式开启服务使用Service的步骤:1.定义一个类继承Service2.在Manifest.xml文件中配置该Service3.使用Contex...翻译 2018-03-28 15:14:26 · 196 阅读 · 0 评论 -
Activity生命周期
onCreate:表示Activity正在被创建,可以做一些初始化的工作,例如加载布局,初始化变量onRestart:表示Activity被重新启动,表示当前Activity正在由不可见变得可见onStart:表示Activitity正在被启动,对用户可见,但是还没有到前台,还无法和用户交互onResume:表示Activity可见,并且出现在前台可以和用户交互onPause:表示Activity...原创 2018-03-28 17:07:42 · 191 阅读 · 0 评论 -
Fragment一点解析
1、Fragment生命周期Fragment是Android3.0开始引入的,Android3.0以前如果想要使用Fragment,需要使用suport-v4兼容包,使用FragmentActivityonAttach:表示Fragment和Activity发生了关联onCreate:表示Fragment正在被创建,可以初始化变量onCreateView:表示创建Fragment的视图,加载布局文...原创 2018-03-28 17:47:19 · 343 阅读 · 0 评论 -
Glide的基本用法
读了大神的文章后,自己整理了一下,算是转载http://blog.youkuaiyun.com/guolin_blog/article/details/53939176Glide是图片加载框架,在安卓平台上以简单的方式加载和展示图片,目前普遍使用Glide3.7.01、使用方法: AndroidManifest.xml中声明访问网络权限:<uses-permission android:name="an...转载 2018-04-11 11:23:19 · 395 阅读 · 0 评论 -
Glide加载图片原理
学习中,自己整理一下,有助于后面加深巩固理解,http://blog.youkuaiyun.com/guolin_blog/article/details/53939176Glide.with(this).load(url).into(imageView);1、with// Glide.java public static RequestManager with(FragmentActivity acti...转载 2018-04-11 12:15:42 · 635 阅读 · 0 评论 -
HandlerThread和IntentService
HandlerThread和IntentService:一、 HandlerThreadHandlerThread继承Thread,是一个线程,内部开启了消息循环@Overridepublic void run() { mTid = Process.myTid(); Looper.prepare(); // 创建Looper synchronized (this) { ...原创 2018-04-17 21:59:52 · 303 阅读 · 0 评论 -
Android官方架构组件:Lifecycle
Lifecycle is a class that holds the information about the lifecycle state of a component (like anactivity or a fragment) and allows other objects to observe this state.Lifecycle uses two main enumerat...翻译 2018-05-21 22:08:51 · 353 阅读 · 0 评论