
Android
文章平均质量分 96
bo_2018
这个作者很懒,什么都没留下…
展开
-
Android MVVM 模式介绍
目录1.MVVM模式分为Model,View,ViewModel注意点2.MVVM模式图3.Android MVVM架构4.Databinding框架Note:5.双向绑定使用到的注解1)@InverseBindingAdapter2)@InverseBindingMethod与@InverseBindingMethods3)@InverseMethod4)@Bindable6.ViewModel 的生命周期7.MVVM的优势和劣势7.1优势7..转载 2021-03-25 10:08:26 · 1617 阅读 · 2 评论 -
Android编译脚本参数说明
Android系统源码编译命令Android源码下开发肯定涉及到Android.mk. Android源码是在linux系统下开发的, 其实说到底是一个大的工程, 里面涉及到庞大的编译系统, 这个额编译系统的核心是build/目录, 就好比我们在终端第一次编译时需要初始化编译环境,都是敲:source build/envsetup.shenvsetup.sh里面还帮我们动态增加了以下命令:croot 切换到源码树的根目录 m 在源码树的根目录执行 make mm转载 2020-07-07 11:28:18 · 564 阅读 · 0 评论 -
BroadCast三种方式
作为android 的四大基本组件之一的 BroadCast Receiver,是进行进程间通信的重要手段,几乎所有的应用都会注册和发送各种不同的intent, 那么有一个问题,你是否了解Intent? 作为延伸,我们需要了解一下 sendBroadcast() / sendOrderedBroadcast() / sendStickyBroadcast() 这三个方法的不同。1)sen...转载 2018-11-30 09:48:05 · 2028 阅读 · 0 评论 -
PackageManager的参数及使用
在我们实际开发中,我们常需要获取应用的一些信息来使用,比如获取应用程序基本信息、获取permission是否注册等。这些信息获取都借助于Android给我们提供的PackageManager进行获取,这里我们就总结下PackageManager的基本用法。首先看下我们常见的Manifest配置图:通过上图可以看出,Android给我们的每个节点提供了对应的信息存储实体类,所以这些类中应该...转载 2018-11-13 14:41:41 · 3685 阅读 · 0 评论 -
Android消息传递机制分析
1.事件响应机制的预备知识在深入了解Android事件响应机制前,一些预备知识我们应该有所了解。1.1 onTouch是优先于onClick执行,事件传递的顺序是先经过onTouch,再传递到onClick。1.2 Android中的事件onClick、onLongClick、onScroll等,都是由多个Touch事件(一个ACTION_DOWN,多个ACTION_MOVE,一个AC...转载 2018-11-13 13:51:38 · 301 阅读 · 0 评论 -
Android Context介绍
Context类型我们知道,Android应用都是使用Java语言来编写的,那么大家可以思考一下,一个Android程序和一个Java程序,他们最大的区别在哪里?划分界限又是什么呢?其实简单点分析,Android程序不像Java程序一样,随便创建一个类,写个main()方法就能跑了,而是要有一个完整的Android工程环境,在这个环境下,我们有像Activity、Service、Broadca...转载 2018-11-02 15:49:28 · 226 阅读 · 0 评论 -
Activity跳转及Intent的清除
如果是当前Activity弹出的dialog则不会执行Activity任何生命周期中的方法, 只有其它Activity弹出了Dialog或者切换Activity才会执行onPause() 。关于Activity的生命周期的解释: 启动Activity:系统会先调用onCreate方法,然后调用onStart方法,最后调用onResume,Activity进入运行状态。 当前...转载 2018-10-30 18:07:01 · 3786 阅读 · 0 评论 -
activity启动之后获取不到上个页面传过来的intent
比如AAcitvity中: Intent intent = new Intent(AAcitvity.this,BActivity); intent.put("data",data); startActivity(intent); 而后我们在B中通过getIntent()方法获取intent,一般情况下我们都可以正常的获取到intent,并从中获取数据,但是有时候...转载 2018-10-30 14:55:03 · 1775 阅读 · 0 评论 -
intent-filter属性介绍
intent-filter详细属性的介绍<intent-filter/>是每一个Activity对应的过滤器标签节点。每一个过滤器里面的元素可以有:0个或多个<action.../>0个或多个<category.../>0个或1个<data.../>(一)全部属性的简介Intent通过下面的属性来描述的某个意图:1. action(...转载 2018-10-31 17:39:31 · 21048 阅读 · 5 评论 -
meta-data介绍
简介-meta是什么meta-data是应用的清单文件AndroidManifest.xml中application,activity,activity-alias,provider,receiver,service下的子标签,比intent-filter多些父标签.像友盟这些统计服务一般只需要一个AppID等,只需要定义在Application中,如果你想给某个组件添加meta-data,那...转载 2018-10-31 17:20:29 · 13014 阅读 · 1 评论 -
Android settings界面加载流程
Settings界面结构简单分析Setting是android系统很重要的模块,这个模块并不是很复杂,这部分也一直在看,很多时候都是在看某个具体的选项,比如WLAN,蓝牙这样具体的源码,但是对于主界面的布局以及结构并不清楚。在使用Hierarchy Viewer工具可以看到Settings模块的主界面显示的是Settings,在进入设置的子界面的时候,显示永远是SubSettings简单分...转载 2018-11-13 17:54:52 · 1423 阅读 · 0 评论 -
category中intent-filter介绍
一、要弄清楚这个问题,首先需要弄明白什么是implicit(隐藏) intent什么是explicit(明确) intent1、显式启动显式启动是我们日常开发中必不可少,基本上每天都会写的Intent intent = new Intent(MainActivity.this,OtherActivity.class);startActivity(intent);2、隐式启动...转载 2018-11-12 10:34:00 · 1657 阅读 · 0 评论 -
Editview默认打开字母键盘,只能输入字母和数字
<EditText android:id="@+id/account" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingLeft="@dimen/margin_35" android:layout_margin="@dimen...转载 2019-05-13 16:00:35 · 810 阅读 · 0 评论 -
Android Studio 常用快捷键
以下是平时在Windwos系统上用Android Studio进行开发时常用到的一些快捷键,虽然不多,但是感觉都还蛮实用的,因此记录下来,如果什么时候不小心忘记了可以拿来翻一翻,That would be very useful! 1.Ctrl + B 跳入/跳出方法或者资源文件。将鼠标光标定位到某个方法或者资源id的调用处,按Ctrl + B,将会跳入该方法或者资源文件内部,功能等同...转载 2019-04-29 14:09:51 · 266 阅读 · 0 评论 -
standard、singleTop、singleTask和singleInstance四种Activity启动模式
1. standard 不同的Activity在同一个栈中, 每次创建新实例的时候,新实例便会堆放到栈顶。 当点返回键的时候,便会从栈顶按顺序将实例移除栈。直至栈为空则退回到桌面。2. singleTop 不同的Activity在同一个栈中。 ① 如果此时Aty1的实例在栈顶,此时再创建一个新的Aty1并不会成功。...转载 2019-04-29 11:21:18 · 542 阅读 · 0 评论 -
Android中实现延时执行操作
在Android开发中我们可能会有延时执行某个操作的需求,例如我们启动应用的时候,一开始呈现的是一个引导页面,过了两三秒后,会自动跳转到主界面。这就是一个延时操作。下面是实现延时执行操作的几种方法:1.使用线程的休眠实现延时操作 new Thread() { @Override public void run() { ...转载 2019-03-29 10:04:03 · 260 阅读 · 0 评论 -
AIDL client使用
1. aidl文件存放的和包名路径一致2.mk文件中LOCAL_SRC_FILES := $(call all-java-files-under, java)LOCAL_SRC_FILES += $(call all-Iaidl-files-under, aidl) //aidl路径原创 2019-02-27 16:44:38 · 309 阅读 · 0 评论 -
WiFi 热点连接
WiFi 热点连接 private static final class OnStartAPCallback extends ConnectivityManager.OnStartTetheringCallback { final WeakReference<FragmentHotspotSet> mTetherSettings;...原创 2019-01-16 17:10:19 · 293 阅读 · 0 评论 -
Android消息机制
一、相关概念的解释主线程(UI线程) 定义:当程序第一次启动时,Android会同时启动一条主线程(Main Thread)作用:主线程主要负责处理与UI相关的事件Message(消息) 定义:Handler接收和处理的消息对象(Bean对象)作用:通信时相关信息的存放和传递ThreadLocal 定义:线程内部的数据存储类作用:负责存储和获取本线程的LooperMessag...转载 2018-12-21 14:39:24 · 125 阅读 · 0 评论 -
spinner的实现及样式改变的方法
1.最简单的spinner <Spinner android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/spinner" android:layout_below="@+id/textView"...原创 2018-11-22 10:10:40 · 3528 阅读 · 0 评论 -
AIDL应用
AIDL 是什么AIDL(Android 接口定义语言) 是 Android 提供的一种进程间通信 (IPC) 机制。我们可以利用它定义客户端与服务使用进程间通信 (IPC) 进行相互通信时都认可的编程接口。在 Android 上,一个进程通常无法访问另一个进程的内存。 尽管如此,进程需要将其对象分解成操作系统能够识别的原语,并将对象编组成跨越边界的对象。编写执行这一编组操作的代码是...转载 2018-10-26 09:57:38 · 220 阅读 · 0 评论 -
导入一个Android Studio工程作为一个Library Module
在我们有两个Android Studio工程的情况时,我们想使用一个作为library工程导入到另一个工程作为一个module。我们可以使用Android Studio很容易的做到。让我们假设我们有两个工程:MyApplication和MyLibrary,我们想导入MyLibrary到MyApplication作为一个module。 首先我们需要从MyLibrary工程中找到module...转载 2018-10-17 14:07:56 · 147 阅读 · 0 评论 -
ServiceConnection
绑定到一个Service应用组件(客户端)可以调用bindService()绑定到一个service.Android系统之后调用service的onBind()方法,它返回一个用来与service交互的IBinder.绑定是异步的.bindService()会立即返回,它不会返回IBinder给客户端.要接收IBinder,客户端必须创建一个ServiceConnection的实例并传给b...转载 2018-09-19 16:39:43 · 14834 阅读 · 1 评论 -
Android中@GuardedBy
Android中有一些 @GuardedBy("mTemperature") private SparseLongArray mLastTemperatureSet = new SparseLongArray(); @GuardedBy("mFanSpeed") private long mLastFanSpeedSet; @GuardedBy("m...转载 2018-09-19 15:43:29 · 2099 阅读 · 0 评论 -
ContentProvider和ContentResolve
一、前言 在Android平台中,各个Android 应用中可能需要互相传递数据。而ContentProvider类的作用就是在不同的应用之间进行数据的传递。 二、URI简介 ...转载 2018-09-13 15:01:23 · 500 阅读 · 0 评论 -
Android回调
回调就是A和B有合作关系,A的某一个环节需要B自己告诉A要怎么做,这就是回调,回调一定有接口。只要写过自定义控件的,就一定写回调。这个是自然的,本文的意义是为了简单描述对回调的一个理解。其实做回调很好,比如我们做了一个自定义的进度条,按钮,或者开关等等,我们都需要做回调接口,有什么好处呢?可以让使用我们控件的人自己去选择一些事情,而不是我们写接口的吧东西给写死了,我们可以提供一些方法,让别...转载 2018-09-18 16:29:20 · 148 阅读 · 0 评论 -
Activity和Fragment
一、Activity生命周期 运行状态,位于前台,用户可见,可以获得焦点 暂停状态,位于前台,可见,不能获得焦点 停止状态,不可见,失去焦点 销毁状态,该Activity结束或所在进程被结束系统回调的方法: onCreate(Bundle status):创建时调用,只会调用一次 onStart():启动Activity时调用 onResu...原创 2018-09-07 14:55:55 · 507 阅读 · 0 评论 -
Android Handler及后台任务
事件处理,采用委派式事件处理方式。1.基于监听事件处理 1).获取界面组件(事件源),即监听对象 2).实现事件监听器类,一个XxxListener接口。 3).调用事件源的setXxxListener将将监听器对象注册给事件源。 事件监听器,通常有: 内部类;外部类;Activity本身作为事件监听器类;匿名内部类 直接绑定到标签 ...原创 2018-09-06 15:02:16 · 1096 阅读 · 0 评论 -
Android adapter
1.SimpleAdapter// 创建一个SimpleAdapterSimpleAdapter simpleAdapter = new SimpleAdapter(this, listItems, R.layout.simple_item, new String[] { "personName", "header" , "desc"}, new int...原创 2018-09-05 16:11:11 · 166 阅读 · 0 评论 -
Android studio在线升级
android studio2.3.3如何在线升级到Android studio3.0而无需手动下载再升级呢?升级Android studio3.0的方法很简单,只需要按照如下操作即可。1:打开android studio2.3.32:选择File > Settings菜单,如果是mac苹果电脑,则选择上方的Android Studio > Preference菜单3:依次...转载 2018-09-04 09:46:47 · 10432 阅读 · 0 评论 -
Gradle version 和 Android Plugin Version
这里写图片描述一、Gradle 和 Android Plugin for Gradle1、GradleGradle 是一个基于 Apache Ant 和 Apache Maven 概念的项目自动化建构工具。它使用一种基于 Groovy 的特定领域语言(DSL)来声明项目设置,抛弃了基于 XML 的各种繁琐配置。简单来说,Gradle 是一种构建工具,它可以帮你管理项目中的差异、...转载 2018-09-03 15:41:34 · 798 阅读 · 0 评论 -
Android Service创建和绑定方法
一、创建Service第一种方式:通过StartService启动Service通过startService启动后,service会一直无限期运行下去,只有外部调用了stopService()或stopSelf()方法时,该Service才会停止运行并销毁。要创建一个这样的Service,你需要让该类继承Service类,然后重写以下方法: onCreate() 1.如果ser...转载 2018-09-19 17:30:09 · 5300 阅读 · 0 评论 -
Android中添加授权操作
Android 6.0之后,需要用户进行授权不仅需要在配置文件中添加授权 <uses-permission android:name="android.permission.CALL_PHONE" />还需要在请求的地方添加: if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest...原创 2018-09-14 16:46:12 · 605 阅读 · 0 评论 -
android SurfaceView
普通的Android控件,例如TextView、Button和CheckBox等,它们都是将自己的UI绘制在宿主窗口的绘图表面之上,这意味着它们的UI是在应用程序的主线程中进行绘制的,由于应用程序的主线程除了要绘制UI之外,还需要及时地响应用户输入,否则的话,系统就会认为应用程序没有响应而出现ANR,对于一些游戏,摄像头预览、视频播放来说,它们的UI都比较复杂,而且要求能够进行高效的绘制,因此,它...转载 2018-09-20 14:28:34 · 900 阅读 · 1 评论 -
App中启动另一个App
启动appA中增加的代码public class MainActivity extends Activity { private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState...转载 2018-10-19 17:33:09 · 141 阅读 · 0 评论 -
Android中onSaveInstanceState()和onRestoreInstanceState()
Android系统的回收机制会在未经用户主动操作的情况下销毁activity,而为了避免系统回收activity导致数据丢失,Android为我们提供了onSaveInstanceState(Bundle outState)和onRestoreInstanceState(Bundle savedInstanceState)用于保存和恢复数据。一、onSaveInstanceState(Bund...转载 2018-10-10 11:22:05 · 189 阅读 · 0 评论 -
Activity中onNewIntent
当Activity的launchMode为singleTask的时候,通过Intent启到一个Activity,如果系统已经存在一个实例,系统就会将请求发送到这个实例上,但这个时候,系统就不会再调用通常情况下我们处理请求数据的onCreate方法,而是调用onNewIntent方法。这时的Activity执行的生命周期为:onNewIntent()——>onRestart()——>on...转载 2018-10-10 10:42:26 · 213 阅读 · 0 评论 -
FragmentActivity和Activity
/** support v4 FragmentActivity 兼容2.x模式下使用Fragment* support v7 AppCompatActivity 兼容2.x模式下使用Fragment和* ActionBar,ActionBarActivity是AppCompatActivity过时产品* 如果3.0以上直接继承Activity,便可使用Fragment和Action...转载 2018-10-10 09:59:38 · 463 阅读 · 0 评论 -
Toast设置字体大小
private Toast mToast; private void showTip(final String str) { runOnUiThread(new Runnable() { @Override public void run() { if (mToast == null) { mToast = Toast.makeText(getAp...转载 2018-10-16 17:07:53 · 4900 阅读 · 0 评论 -
Handler leaks
在使用Handler更新UI的时候,我是这样写的:public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Override p...转载 2018-10-15 18:21:30 · 131 阅读 · 0 评论