![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android开发
文章平均质量分 57
云淡风清_ws
android、kotlin、vue、php
展开
-
DataBinding xml使用三元运算符的坑
DataBinding 使用运算符遇到的坑原创 2022-08-25 16:02:52 · 1147 阅读 · 1 评论 -
Android组件化方案
https://blog.csdn.net/guiying712/article/details/55213884转载 2019-10-14 10:46:04 · 160 阅读 · 0 评论 -
android数据存储的五种方式
Android数据存储五种方式总结本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据 2 文件存储数据 3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据下面详细讲解这转载 2016-09-26 08:48:34 · 375 阅读 · 0 评论 -
模块化、组件化和插件化的区别
单工程模式移动开发诞生,我们开发移动项目,我相信大多用的是单工程单任务的开发模式,二话不说,直接就开始写起,是不是这样呢? new Project -> 分包 -> 写起。我相信都经历过,也写的比较爽,为什么呢? 这种模式不涉及乱七八糟的处理方式, 上手快,开发快,足够敏捷。那么原因是什么呢?Mobile Project 刚起步,项目都偏小,一些附加业务还没绑到App上。模块化A...转载 2019-10-14 10:30:59 · 2592 阅读 · 0 评论 -
View的Touch事件-隧道/冒泡原理分析
根据一下文章总结原文出处:https://blog.csdn.net/github_26939093/article/details/51124443文章推荐:https://blog.csdn.net/morgan_xww/article/details/9372285/跟touch事件相关的3个方法:public boolean dispatchTouchEvent(MotionEve...原创 2019-02-27 10:08:26 · 319 阅读 · 0 评论 -
Android四大组件之一Service
Serviceservice用于在后台完成用户指定的操作。service分为两种:(a)started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。(b)bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。startService()与bindServi...原创 2019-02-27 18:19:02 · 318 阅读 · 0 评论 -
Binder连接池
aidl实现流程概述 首先建立一个aidl接口和一个Service,接着实现一个类A继承aidl接口中的Stub类并实现其中的方法,在Service绑定时返回类A的对象,然后客户端就可以绑定服务端,建立连接后就可以访问远程服务端的方法了。可能出现的问题及解决方式 公司项目越来越大,100个aidl,按照上面的思路,得100个Service。这显然不可以,解决方式是binder 连接池。 ...原创 2018-03-30 16:17:25 · 241 阅读 · 0 评论 -
Android IPC机制分析
《Android开发艺术探讨》之 Android IPC 介绍IPC是 Inter-Proscess Communication的缩写,含义为进程间的通讯或者跨进程通讯,是指两个进程之间进行数据交换的过程。按操作系统的中的描述,线程是CPU调度最小的单元,同时线程是一种有限的系统资源,而进程是指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程,因此进程和线程是包...原创 2018-03-23 17:44:30 · 186 阅读 · 0 评论 -
ThreadPoolExecutor使用介绍
背景: 【强制】 新建线程时,必须通过线程池提供(AsyncTask 或者 ThreadPoolExecutor 或者其他形式自定义的线程池),不允许在应用中自行显式创建线程。 说明: 使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解 决资源不足的问题。如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或者“过度切换”的问题。 另外创建匿名线程不便于...原创 2018-03-22 17:39:23 · 343 阅读 · 0 评论 -
Dagger2 使用及高级用法
前言最近在做项目中,用到了 Dagger2,所以找了一些博客并参考了菜鸟窝 Ivan 的视频,算是知道如何使用了,但是对其理解还相差很远。所以这篇文章重点针对如何使用和使用中常见的一些问题。Dagger2根据官网来说他就是一个快速的依赖注入框架。如果对依赖注入不太了解,那么请自行搜索依赖注入原理,在这里我就不过多介绍了。其实他的作用重点就是解耦和管理实例对象。那我们看看他具体有什么好处...原创 2018-03-18 11:15:23 · 2376 阅读 · 0 评论 -
自定义EditText ,实现一个字一个格
自定义EditText ,实现一个字一个格原创 2016-07-26 10:08:40 · 633 阅读 · 0 评论 -
多个fragment切换,而不重新加载数据的实现
多个fragment切换,而不重新加载数据的实现1、在xml中添加一个framlayout<FrameLayout android:id="@+id/framelayout" android:layout_width="match_parent" android:layout_weight="1" android:layout...原创 2016-07-13 22:12:43 · 4204 阅读 · 2 评论 -
打开系统相册裁剪图片,已解决裁剪大图的问题
关于调用系统裁剪图片的问题,好不容易终于解决了!1.先看看一些基本的参数裁剪大图的时候一定用imageUri进行传递,intent.putExtra("output", imageUri);如果 intent.putExtra("return-data", true);这里设置为true 就代表用bitmap传递,一旦bitmap超过1m就崩溃。2.话不多说直接原创 2016-07-09 11:10:59 · 528 阅读 · 0 评论 -
打开系统相册并裁剪,而引发的一些问题
第一步:打开系统相册的方法private static final String IMAGE_FILE_LOCATION = "file:///sdcard/temp.jpg";Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); Uri imageUri = Uri.par原创 2016-06-30 21:40:03 · 310 阅读 · 0 评论 -
测量listview的高度
public void setListViewHeightBasedOnChildren(ListView listView) { // 获取ListView对应的Adapter ListAdapter listAdapter = listView.getAdapter(); if (listAdapter == null) { return; }转载 2016-03-23 15:23:06 · 810 阅读 · 0 评论 -
Android fragment嵌套fragment失去Context的问题
/*** 此法可以解决fragment嵌套fragment失去activity的问题*/@Override public void onDetach() { super.onDetach(); try { //参数是固定写法 Field childFragmentManager = Fragment原创 2016-03-25 10:07:08 · 1669 阅读 · 0 评论