自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

一个北漂的程序员

Android/Kotlin 开发

  • 博客(29)
  • 资源 (1)
  • 收藏
  • 关注

转载 模块化、组件化和插件化的区别

单工程模式移动开发诞生,我们开发移动项目,我相信大多用的是单工程单任务的开发模式,二话不说,直接就开始写起,是不是这样呢? new Project -> 分包 -> 写起。我相信都经历过,也写的比较爽,为什么呢? 这种模式不涉及乱七八糟的处理方式, 上手快,开发快,足够敏捷。那么原因是什么呢?Mobile Project 刚起步,项目都偏小,一些附加业务还没绑到App上。模块化A...

2019-10-14 10:30:59 2557

原创 多个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 4138 2

原创 发布开源项目到 jitpack

## 6.使用github账号,登录 [jitpack.io](http://jitpack.io) ,在左侧点击要发布的项目,然后再点击 Look up → **Get it**,等待Log加载完成。## 1.在要发布android module下的 build.grdle 添加,多个module就添加多个。## *(Gradle7.x 的版本已不适用 android-maven 的方法发布)*## 2.push代码之后,添加tag ,并提交版本 1.0.0 ,-m 添加备注信息。

2023-10-24 10:32:19 143

原创 DataBinding xml使用三元运算符的坑

DataBinding 使用运算符遇到的坑

2022-08-25 16:02:52 1027 1

原创 Glide 版本冲突

Glide NoSuchMethodError

2022-04-08 13:11:35 761

原创 APK打包 output-metadata.json‘ which doesn‘t exist.

自定义apk输出路径打包时,出现这个bugA problem was found with the configuration of task ':app:createReleaseApkListingFileRedirect' (type 'ListingFileRedirectTask'). - In plugin 'com.android.internal.version-check' type 'com.android.build.gradle.internal.tasks.Listing.

2022-03-03 17:43:39 7903 3

转载 Android组件化方案

https://blog.csdn.net/guiying712/article/details/55213884

2019-10-14 10:46:04 146

原创 Java面向对象之三大特性

封装1、概念:  将类的某些信息隐藏在类的内部,不允许外部程序访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问。2、好处:a.只能通过规定的方法访问数据b.隐藏类的实例细节,方便修改和实现3、封装的实现步骤①修改属性的可见性——设为private②创建getter/setter方法,用于属性的读写③在getter/setter方法中加入属性控制语句,对属性值的合法性进...

2019-03-07 10:39:45 133

原创 Android四大组件之一Service

Serviceservice用于在后台完成用户指定的操作。service分为两种:(a)started(启动):当应用程序组件(如activity)调用startService()方法启动服务时,服务处于started状态。(b)bound(绑定):当应用程序组件调用bindService()方法绑定到服务时,服务处于bound状态。startService()与bindServi...

2019-02-27 18:19:02 308

原创 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 294

原创 Binder连接池

aidl实现流程概述 首先建立一个aidl接口和一个Service,接着实现一个类A继承aidl接口中的Stub类并实现其中的方法,在Service绑定时返回类A的对象,然后客户端就可以绑定服务端,建立连接后就可以访问远程服务端的方法了。可能出现的问题及解决方式 公司项目越来越大,100个aidl,按照上面的思路,得100个Service。这显然不可以,解决方式是binder 连接池。 ...

2018-03-30 16:17:25 225

原创 Android IPC机制分析

《Android开发艺术探讨》之 Android IPC 介绍IPC是 Inter-Proscess Communication的缩写,含义为进程间的通讯或者跨进程通讯,是指两个进程之间进行数据交换的过程。按操作系统的中的描述,线程是CPU调度最小的单元,同时线程是一种有限的系统资源,而进程是指一个执行单元,在PC和移动设备上指一个程序或者一个应用。一个进程可以包含多个线程,因此进程和线程是包...

2018-03-23 17:44:30 171

原创 ThreadPoolExecutor使用介绍

背景: 【强制】 新建线程时,必须通过线程池提供(AsyncTask 或者 ThreadPoolExecutor 或者其他形式自定义的线程池),不允许在应用中自行显式创建线程。 说明: 使用线程池的好处是减少在创建和销毁线程上所花的时间以及系统资源的开销,解 决资源不足的问题。如果不使用线程池,有可能造成系统创建大量同类线程而导致消耗完内存或者“过度切换”的问题。 另外创建匿名线程不便于...

2018-03-22 17:39:23 331

原创 Dagger2 使用及高级用法

前言最近在做项目中,用到了 Dagger2,所以找了一些博客并参考了菜鸟窝 Ivan 的视频,算是知道如何使用了,但是对其理解还相差很远。所以这篇文章重点针对如何使用和使用中常见的一些问题。Dagger2根据官网来说他就是一个快速的依赖注入框架。如果对依赖注入不太了解,那么请自行搜索依赖注入原理,在这里我就不过多介绍了。其实他的作用重点就是解耦和管理实例对象。那我们看看他具体有什么好处...

2018-03-18 11:15:23 2359

原创 String、StringBuffer、StringBuilder的区别

提高你的Java代码质量吧:你能正确使用String、StringBuffer、StringBuilder吗 标签: JavaStringStringBufferStringBuilder 分类:Java提高(37) 版权声明:本文为博主原创文章,未经博主允许不得转载。 一、建议 CharSequence接口有三个实现类与字符串相关:String、StringBuffer、Strin

2016-11-02 09:17:58 255

原创 android java设计模式之单例模式

一、java设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式

2016-10-20 11:36:07 483

原创 说下TCP/IP UDP协议 及TCP的连接与关闭

IPIP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层;相反,IP层也把从TCP或UDP层接收来的数据包传送到更低层。IP数据包是不可靠的,因为IP并没有做任何事情来确认数据包是否按顺序发送的或者有没有被破坏,IP数据包中含有发送它的主机的地址(源地址)和接收它的主机的地址(目的地址)。高层的TCP和UDP服务在接收数据包时,...

2016-10-20 10:07:18 3245

转载 TCP/IP 网络数据传输之网络协议

说起网络数据之间的交互,我们就必须明白下网络的分层,知道网络从后台到客户端看到的有哪些步骤。网络的七层分层在实际手机端开发中,我们主要是通过接口向后台请求数据,然后数据经过处理展示到手机客户端上。所以我们基本涉猎的就是传输层(TCP协议)和网络层(IP协议)。这就是我们俗称的TCP/IP协议。Android的网络编程分为2种:基于http协议和基于socket。

2016-10-20 09:57:30 4156

转载 http和tcp的区别

Http是应用层协议,TCP是网络层协议,应用层在TCP/IP四层架构中位于TCP的上一层。建立Http连接在实现时有以下两种方式:1、[java] view plaincopyDefaultHttpClient http = new DefaultHttpClient(); HttpGet method = new HttpGet(url); HttpResponse resp

2016-10-19 11:11:50 782

转载 HTTP 返回状态代码详解

1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码。100(继续)请求者应当继续提出请求。 服务器返回此代码表示已收到请求的第一部分,正在等待其余部分;101(切换协议)请求者已要求服务器切换协议,服务器已确认并准备切换。22xx(成功)表示服务器成功处理了请求的状态代码。200(成功)服务器已成功处理了请求。通常,

2016-10-19 10:52:48 309

原创 AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案

AndroidStudio导入项目一直卡在Building gradle project info最快速解决方案时间:2015-09-28 00:14:39      阅读:11232      评论:0      收藏:0      [点我收藏+]标签:android   style   http   使用   sp   文件   方法   io   as   A

2016-09-27 23:37:57 447

原创 Handler内存泄露的解决方法

Android之Handler内存泄漏分析及解决字数1121 阅读4738 评论11 喜欢32一、介绍首先,请浏览下面这段handler代码:public class SampleActivity extends Activity { private final Handler mLeakyHandler = new Handler() { @Overr

2016-09-27 10:01:51 322

转载 android数据存储的五种方式

Android数据存储五种方式总结本文介绍Android平台进行数据存储的五大方式,分别如下:       1 使用SharedPreferences存储数据    2 文件存储数据          3 SQLite数据库存储数据    4 使用ContentProvider存储数据    5 网络存储数据下面详细讲解这

2016-09-26 08:48:34 355

转载 Android 多线程-----AsyncTask详解

Android 多线程-----AsyncTask详解您可以通过点击 右下角 的按钮 来对文章内容作出评价, 也可以通过左下方的 关注按钮 来关注我的博客的最新动态。 如果文章内容对您有帮助, 不要忘记点击右下角的 推荐按钮 来支持一下哦 如果您对文章内容有任何疑问, 可以通过评论或发邮件的方式联系我: [email protected] / lzp5013

2016-09-12 08:33:46 350

原创 自定义EditText ,实现一个字一个格

自定义EditText ,实现一个字一个格

2016-07-26 10:08:40 618

原创 打开系统相册裁剪图片,已解决裁剪大图的问题

关于调用系统裁剪图片的问题,好不容易终于解决了!1.先看看一些基本的参数裁剪大图的时候一定用imageUri进行传递,intent.putExtra("output", imageUri);如果 intent.putExtra("return-data", true);这里设置为true 就代表用bitmap传递,一旦bitmap超过1m就崩溃。2.话不多说直接

2016-07-09 11:10:59 515

原创 打开系统相册并裁剪,而引发的一些问题

第一步:打开系统相册的方法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 299

原创 Android fragment嵌套fragment失去Context的问题

/*** 此法可以解决fragment嵌套fragment失去activity的问题*/@Override   public void onDetach() {       super.onDetach();       try {           //参数是固定写法           Field childFragmentManager = Fragment

2016-03-25 10:07:08 1654

转载 测量listview的高度

public void setListViewHeightBasedOnChildren(ListView listView) {   // 获取ListView对应的Adapter   ListAdapter listAdapter = listView.getAdapter();   if (listAdapter == null) {   return;   }

2016-03-23 15:23:06 793

android broactreciver

sdhfiuwhfasdnflaskfo

2015-07-08

空空如也

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

TA关注的人

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