自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Android JNI开发入门

又很久没写博文了,懒癌晚期,没得救了。这次要分享的又是全干货,想往底层方向发展的筒靴避不开药学习JNI开发,今天就从搭建环境到完成第一个demo开始带大家入门(其实我也才刚开始学JNI开发,有不对之处欢迎大家指正)。环境搭建(1)下载NDK、CMake等打开Android studio的设置,然后搜索SDK,选择Android SDK选择上图中勾选的进行下载,然后应用(2)配置环境变量我这边是Mac系统,所以在.bash_profile文件内...

2021-09-27 14:50:15 151

原创 ViewBinding使用进阶

ViewBinding基础使用,即在模块得build.gradle配置后自动为布局绑定视图,在《告别findViewById和ButterKnife》中已阐述,那下面的进阶使用可能有些小伙伴还不清楚,那这篇文章我们就扒一扒ViewBinding的进阶使用。 布局中使用include 布局中使用merge Fragment中使用ViewBinding 自定义View使用ViewBinding 布局中使用include新建布局layout_include..

2020-07-10 11:55:47 4364 2

原创 Android viewBinding让你告别findViewById和ButterKnife

很久没有更新博客了,不是因为别的,就是懒。今天要分享的一个新技术,从此告别定义一大串的UI控件变量,再也不用写findViewById,也不需要依赖ButterKnife和写一堆@BindView().听说这一消息,不知道大家有没有觉得很爽,反正我是觉得很香。那么下面就开始介绍一下viewBind。一、使用viewBinding 1.首先在你想要使用viewBin...

2020-04-24 16:21:39 1337

原创 Android Handler消息处理机制面试5连问

Handler消息处理机制,相信做Android的同学都知道,我们来看下面一段代码:import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android....

2020-03-11 11:52:43 264

原创 Flutter ListView子项长按浮层菜单实现

ListView是一个常用控件,而且大多数ListView都会进行功能扩展,如左滑出现菜单选项、左滑删除、长按出现菜单选项等,本文讲介绍如何实现长按出现菜单选项功能。废话不多说,直接上代码:@overrideWidget build(BuildContext context) { return Scaffold( appBar: AppBar( aut...

2019-12-16 15:00:43 1563

原创 Android 一文弄懂如何加载xml格式数据

引言 在大多数情况下,我们请求返回的数据基本是json或者是字符串格式,但是也有响应数据是xml格式的,比如配置信息等,那么这种情况下我们又该如何处理,把返回数据自动转化为我们定义的实体类呢?gradle依赖implementation ('com.squareup.retrofit2:converter-simplexml:2.1.0'){ exclud...

2019-10-24 14:48:39 650

原创 Android 网络框架(三)LiveData+Retrofit封装与原理剖析

前言 Retrofit算是目前最流行的网络框架了,而用的比较多的组合方式是Rxjava+Retrofit,因为RxJava很好的实现了异步通信、UI线程和子线程之间的切换,但是RxJava+Retrofit这一组合有一个缺点,那就是容易造成内存泄漏,因为不能感知UI的生命周期,当然通过加入RxLifeCycle也能解决这一问题。我们今天要说的不是RxLifeCycle,主角是Liv...

2019-10-21 11:11:00 1760 4

原创 Spring 面向切面编程(AOP)理论与实践

前言AOP编程是为了将切面问题从主业务中抽离从而达到解耦的目的,弥补了OOP(面对对象编程通过继承类和实现接口阻碍更多行为添加导一组类上的不足。比如用户登陆,而需记录登陆日志(接口请求耗时等)、处理用户角色访问权限(如资源、按钮)、事物管理(如登陆失败数据回滚)等,而这些跟用户登陆主业务毫无关系,这就是切面问题。AOP知识点Aspect(切面):是advice和Po...

2019-10-16 15:22:47 135

原创 Android 控件右上角角标的实现方案

很多项目中都会用到控件的角标,以达到提示作用,如未读信息,剩余量等等,那么如何实现呢?这篇文章将三种方式进行实现,大家按需选择。一、setCompoundDrawblestextView = findViewById(R.id.message_tint);Drawable drawable = getDrawable(R.drawable.red_bubble_bg);...

2019-10-12 17:18:13 6072 2

原创 Android 网络框架(二)之Retrofit+RxJava网络框架封装

这篇文章主要阐述在实际开发中如何封装我们自己的网络通信框架,网络框架需提供请求日志、失败重试、异步请求等功能,如果你想了解这些,那看这篇文章就对了。如果你对Retrofit的使用还不了解,那你可以看之前一片文章:android 网络框架(一)之Retrofit使用详解。废话不多说,下面我们进入正题。一、引入SDK//rxjavaapi 'io.reactivex.rxj...

2019-08-27 11:30:19 484

原创 Spring Boot 自动配置与代码配置

在Spring中依赖注入(dependency injection,即DI)是指容器负责创建对象和维护对象之间的依赖关系,而不是通过对象本身实现自己的创建和解决自己的依赖。在Spring中有自动配置、Java配置和XML配置,其中Java配置更为灵活,在Spring Boot中主要采用自动配置,在某些情况下采用java配置。下面来看一下自动配置和Java配置的代码实现,详细代码如下:...

2019-08-21 17:37:28 461

原创 Java 踩坑之资源文件读取

最近做项目遇到一个坑,在Resources文件配置SDK初始化参数,本地运行可以读取到文件内容,但是打包部署到服务器上就会出现读不到资源文件的情况,这里记录一下。下图是资源文件放置目录:一开始读取代码如下:Properties properties = new Properties();FileInputStream fileInputStream = null;t...

2019-08-20 11:18:09 876

原创 JAVA 对象多态性

都知道面向对象编程有个三个特点:封装、继承和多态。封装和继承在此不做介绍,这里主要说一下多态性,多态性主要指两个方面:1.方法的覆盖和重载;2.对象的多态性。方法的覆盖和重载较为简单,也不做赘述,对象的多态性主要分两种情况:1.向上转型:子类 ---> 父类;2.向下转型:父类 ---> 子类;然后我们通过下面代码来阐述两种情况,走起!public c...

2019-08-15 21:55:30 171

原创 JAVA 类成员初始化这一篇就够了

在我们实际开发中,定义一个类是实在不能再平常的事,面向对象编程的理念是“一切皆是对象”,没有什么是对象不能盘的,那么我们是否真的知道类中成员初始化顺序呢?看完这篇文章你将对类成员初始化有个完整全面的认识。一、无父类package com.example.test;public class Dog { public Dog(){ System.o...

2019-08-04 12:42:28 1397

原创 android 网络框架(一)之Retrofit使用详解

.一、前言Retrofit 是一个 RESTful 的 HTTP 网络请求框架的封装,底层是OKHttp,可以处理GET、POST、PUT、DELETE等请求,还可以使用Picasso加载图片。二、注解1.网络请求方法@POST、@GET、@PUT、@DELETE全都是http中网络请求方式,@HTTP可以替换@POST、@GET、@PUT、@DELETE注解及更多功...

2019-07-28 15:48:22 526

转载 Android 使用Vector XML文件创建矢量图片资源

转载请注明出处:http://blog.csdn.net/klxh2009/article/details/51121034 本文出自【付小华的博客】Vector:矢量的意思我们知道,在安卓开发过程中,经常使用到png格式的图片资源,这种图片需要有不同分辨率来做屏幕适配,当图片数量很大时,被打包的图片资源占据了app的绝大部分容量,使用Vector来创建图片,将大大减少png图片的

2017-05-10 14:25:12 880

原创 Android应用的欢迎界面动画实现

一、动画基础知识      1、动画种类: Android动画有四大类,分别是AlphaAnimation、ScaleAnimation、TranslateAnimation和RotateAnimation,功能对照如下:AlphaAnimation渐变透明动画效果ScaleAnimation渐变缩放动画效果TranslateAnim

2017-03-21 19:28:08 3402

原创 说一说ListView的那些坑

在写这篇博客之前被这个问题折腾了一两天,怎么都弄不好。一开始也看了几篇ListView显示错乱的文章,在此把写得比较好几篇连接分享至此:http://blog.csdn.net/s003603u/article/details/47261393;http://blog.csdn.net/huanongjingchao/article/details/42918869。然后分享一下我的辛路历程。...

2016-12-20 15:43:15 1356

原创 自定义标题栏之ActionBar与“沉浸式”标题栏

标题栏对于用户导航能起到很重要的作用,也能提高用户体验,所以很多情况下,我们应用都会标题栏,但系统默认的标题栏很丑,我们应用开发一般都不会用系统默认的标题栏,都会自定义自己风格的标题栏。标题栏一般有两种形式:一是利用actionbar,一种是直接利用布局来实现(当然利用布局来实现需要用到辅助手段)。一、自定义actionbar实现标题栏<LinearLayout xmlns:androi

2016-12-15 15:12:31 2208 2

原创 Android开发之通话记录

本文主要实现类似iPhone通话记录效果,即相邻通话如果通话号码相同、通话类型(呼入、呼出、未接)相同、间隔时间(某一阈值范围内),则将其归为一条记录,否则,将其分别显示。首先获取通话记录必须添加一下权限: <uses-permission android:name="android.permission.READ_CALL_LOG" /> <uses-...

2016-12-05 19:09:18 3319 5

原创 Android6.0 Telephony Frameworks之数据业务建立流程

数据业务(数据网络,即SIM卡上网)的建立需满足两个条件:1.选择并激活合适的APN;2.PS域已处于Attached状态。默认状态下,手机开机后就会发起PS附着的信令给网络。而所有数据网络的请求(打开关闭数据开关、切换数据卡、修改APN等)都必须经过DcTacker.java处理,其是Telephony框架中负责数据业务的核心。一、数据业务建立之准备知识1. DcTracker...

2016-12-01 16:43:00 2873

原创 Android开发之软键盘的弹出与退出

关于软键盘的弹出与退出,本文将分一下几种情况做出相应讲解:首先定义一个软键盘管理器:InputMethodManager inputManager;1.如果想让Activity已开始运行时不弹出软键盘,可在AndroidManifest.xml文件中做如下设置:android:windowSoftInputMode="adjustPan|stateHidden"

2016-11-30 19:24:52 784

空空如也

空空如也

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

TA关注的人

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