自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (2)
  • 问答 (1)
  • 收藏
  • 关注

原创 Compose中的下拉刷新pullrefresh

虽然是官方的组件,但是用上去感觉不是很友好,还没有之前的SwipeRefreshLayout好用,希望官方继续完善!!!另外可以对pullrefresh进行二次开发,封装起来更像个样子。

2023-12-29 09:00:09 498

原创 Compose学习之绘制速度表盘

用Compose绘制速度仪表盘

2023-11-16 15:51:01 121

原创 AOSP安卓源码编译

Android源码编译

2023-06-28 09:17:46 950

原创 AOSP安卓源码下载

AOSP的下载

2023-01-13 16:49:44 883

原创 使用MapBox自定义地图

一、什么是MapBox,相对国内地图厂商的优势MapBox是一家美国的地图厂商,2010 年成立于美国华盛顿,2017 年获得软银 1.64 亿美元 C 轮融资,完全开源的开发工具,帮助您在现有产品中实现灵活、轻量、稳定的地图、搜索、导航等位置功能的无缝添加。因为完全开源所以你可以使用它做自己的地图,而不是像国内厂商一样只能使用厂商配置好的地图。比方说一些产业园区在百度或高德地图中没有显示内部道路,如果这时候有这个显示需求就得借助瓦片或者使用mapbox自己绘制地图了。二、自定义地图需要做些什么这里

2021-02-25 17:30:56 4511 4

原创 Android中简单使用MQTT

一、什么是MQTTMQTT(消息队列遥测传输)是ISO 标准(ISO/IEC PRF 20922)下基于发布/订阅范式的消息协议。它工作在TCP/IP协议族上,是为硬件性能低下的远程设备以及网络状况糟糕的情况下而设计的发布/订阅型消息协议-----------百度百科作为一名Android工程师确实很少接触到这类通行协议方式,大多数都是第三方封装好了的工具供调用,比如消息推送什么的多数是基于MQTT,所以这里补一波二、如何集成1.添加mave仓库URLmaven { url ‘https://re

2020-11-23 17:33:05 6414

原创 关于JNI、Java调C++、.so库避坑笔记

最近在我的Java同事在搞Java掉C++代码的事,而我是个写安卓的,在这一块比他稍微熟悉这块一些,就打算折腾一下。然后自己写了个测试,当然代码都很简单,主要是把其中的逻辑搞清楚。一、配置AndroidStudio要编译和调用原生代码,需要用的组件:1.Android原生开发套间(NDK):这套工具能在Android应用中使用C/C++代码2.CMake:一套外部编译工具3.LLDB:AndroidStudio用于调试原生代码的调试程序说明:在AndroidStudio的设置界面的Androi

2020-05-22 11:05:06 553

原创 Android中使用ProtoBuf进行通信

一.什么是ProtoBufprotobuf是Google的与语言无关,与平台无关,可扩展的机制,用于对结构化数据进行序列化(例如XML),但更小,更快,更简单。您定义要一次构造数据的方式,然后可以使用生成的特殊源代码轻松地使用各种语言在各种数据流中写入和读取结构化数据。这是google的官方文档。protobuf支持很多语言。,这里仅以Java为例。对于一个写移动端的我来说,初次接触proto...

2019-12-02 17:28:55 972

原创 Android Jetpack组件之Lifecycles

感觉好久没有写学习笔记了,今天恰好1024。Android Jetpack是一套库、工具和指南,可帮助开发者更轻松地编写优质应用。这些组件可帮助您遵循最佳做法、让您摆脱编写样板代码的工作并简化复杂任务,以便您将精力集中放在所需的代码上。网上关于Jetpack组件的使用已经有很多相关的文章了,但是我还是打算写一篇我自己的。相关文档参见JetpackAndroid中文官网Jepack是andr...

2019-10-24 22:23:08 201

原创 在VirtualBox中安装MacOS并设置分辨率

下载虚拟机和MacOS就不说了,网上很多教程。这里需要设置的2个方面1.VirtualBox中设置MacOS属性cd到VirtualBox的安装目录将一下目录依次输入VBoxManage modifyvm "Mac" --cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbffVBoxManage setextradata "Mac" "...

2019-09-24 17:58:09 3536 1

原创 安卓中实现基本的组件化

说起组件化大家一定很熟悉了,网上也有一堆资料,但是我还是想写一篇自己对于实现组件化的方法。一. 什么是组件化?说起组件化一定要谈一下模块化,很多人对组件化和模块化的区别不是很清楚,包括我自己也是。那现在来说说我对它们的理解:模块是对功能的具体划分,比方说App当中的登录模块,首页模块等等。这是按产品需求划分的。组件则是对功能实现的划分,感觉是站在我们程序员的视角来划分的,比方说登录模块里面...

2019-09-03 18:00:17 465

原创 安卓library中使用butterknife遇到的一些问题

最近在做组件集成,将遇到的问题记录一些。当我把Module到到App里面并配置了依赖同步一些项目的时候提示Manifest merger failed查看提示Suggestion: add ‘tools:replace=“android:appComponentFactory”’,照着提示修改Manifest文件还是提示错误。ERROR: Manifest merger failed : At...

2019-07-30 19:22:59 938

原创 Android中app Module,library Module和Java Library的区别

Android中app Module,library Module和Java Library的区别,主要在于app Module是生成apk文件,library Module生成aar文件,Java Module生成jar包,而aar和jar的区别在于aar可以携带资源文件一起打包生成依赖文件,而jar只能携带java文件。...

2019-07-16 14:01:55 2918

原创 在Ubuntu中Eclipse For C/C++运行Launch failed.Binary not found异常

今天在Ubuntu机子上安装了Eclipse for C/C++,这个机子上我之前已经安装了C/C++编译器了的。然后在Eclipse上写了一段代码运行一下,结果就报Launch failed.Binary not found,所以在此mark一下。1.检查系统是否已经安装环境。方法:gcc -v 查看是否已经安装,如果没有安装就执行命令:sudo apt-get install g++就...

2019-01-06 20:20:41 768

原创 在ubuntu中给应用程序添加快捷方式

最近几天想将我的老笔记本升一下级,之前是win10的感觉老卡了,所幸想是一下Linux的系统就在Ubuntu官网上下载了最经的18.04的版本,试了一下感觉不错。可是当自己不在snap软件商店安装软件时,系统就不会自己创建应用图标。这里我以AndroidStudio创建应用图标为列。在ubuntu中所有应用快捷方式都放在/usr/share/applications这个目录下,所以我们就在...

2018-12-27 11:55:59 2911

原创 Linux 常用命令学习(一)

1.man命令–>手冊(manual)man手冊共有以下幾個章節1.Standard Command(標準命令)2.System calls(系統調用)3.Library funcations(庫函數)4.Special devices(設備說明)5.File formats(文件格式)6.Game and toys(遊戲和娛樂)7.Miscellaneous(雜項)8.A...

2018-12-25 16:35:15 150

原创 Android实现动态高斯模糊

网上有一把分享,不过我还是打算搞一下,嘻嘻嘻。。。先上核心代码,后说明 private Bitmap blur(Bitmap bitmap, float radius) { Bitmap output = Bitmap.createBitmap(bitmap); // 创建输出图片 RenderScript rs = RenderScript.create(g...

2018-12-17 11:25:19 1912

原创 RecyclerView添加头布局和尾布局

看到别人的对RecyclerView添加酷炫的下拉刷新和上拉加载更多时总想自己也搞一下。说干就干,在此mark一下。RecyclerView不像ListView那样提供了addHeadView()和addFootView()的方法,所以要自己实现,因为RecyclerView的内容格式是Adapter提供的,所以从Adapter着手。创建MyAdapter继承RecyclerView的Adapt...

2018-12-06 11:31:39 1893

原创 安卓全局异常捕捉

直接上代码就是干public class ExceptionCapture implements Thread.UncaughtExceptionHandler { private static ExceptionCapture exceptionCapture; private Context context; private Thread.UncaughtE...

2018-08-29 11:03:29 400

原创 安卓设计模式MVP

为啥要用MVP网上有很多关于怎样写好MVP模式的文章,但是我还是想写一篇关于此类的文章,多一个不多少一个不少,仅供参考提供不同的见解嘛</可爱>。很早就像写一篇MVC的进阶篇MVP了,MVC这里就不了说太多了,因为即使你不同设计模式,写代码的风格和MVC也差不了太远啦,MVC(model view control)M为数据,View为视图,C的控制即接受操作数据展示在View上...

2018-08-13 16:53:57 1137 3

原创 经典蓝牙的连接通信

最近需要做一个从车载电脑里面读取汽车的发动机相关信息的工作就是所谓的OBD信息采集,这些信息 通过经典蓝牙传输到目标设备上。与现在的免握手的蓝牙连接相比还是有很多不同,所以在这里mark一下,希望能帮助有需要的朋友。扫面蓝牙 首先获得蓝牙权限,然后打开蓝牙,设置蓝牙扫面结果监听然后开启蓝牙扫描OBDBlueDevice obdBlueDevice=new OBDBlueDevice(this,"此

2018-02-23 11:17:29 2291

原创 Butterknife使用指南

现在的butterknife已经更新到8.8.1了,一开始我还不怎么用这个框架,还有用findviewbyId(),一开始也没觉得有什么不好,但是当布局文件太多的时候,在Activity中写findviewbyId()确定很让人恼火,所以开始接触并使用butterknife,感觉自己的代码瞬间高大上了不少。。。(你们是否这么觉得呢?^_^……呵呵)一,如何引入到项目中 在工程的gradle文件中的

2017-09-20 17:21:08 316

原创 安卓7.0拍照,FileUriExposedException: file:/// ****** exposed beyond app through ClipData.Item.getUri()

前段时间把App的有关拍照的代码写好了,也适配了安卓7.0,但当时公司没有安卓7.0的手机进行测试,所以一直没有测过,这不,把我们老大的三星的手机搞来玩玩,偷偷给升级到了安卓7.0来测一下,果然出了问题,很时棘手,FileUriExposedException: file:////XXXXXXXX g exposed beyond app through ClipData.Item.getUri()

2017-09-19 15:10:03 3230

翻译 安卓7.0文件存储权限变更

安卓7.0文件存储权限变更

2017-09-18 15:16:49 6916

原创 Rxjava学习笔记(一)

当Rxjava火了很久之后,才想起来学习一哈,不然就落伍了……^_^ Rxjava是基于观察者模式设计的,(至于什么是观察者模式,有需要了解的自己查,哈哈哈)。 上硬菜,首先这里涉及到两个概念,观察者和被观察者。被观察者发生变化就立马通知观察者,做出相应的事件处理过程。这就是Observable(被观察者)和Observer(观察者)。它们之间通过订阅关系连接。 首先来一个最简单的Observ

2017-08-29 17:48:37 246

原创 App启动页

之前就打算写一个App启动页相关的文章的,一直拖到现在 !–小二,上代码–public class SplashLoginActivity extends BaseActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstance

2017-08-15 15:05:03 610

原创 Error:warning: Ignoring InnerClasses attribute for an anonymous inner class

今天在打测试包的时候以为报了个错,前段时间都没有出过这样的问题,搞得摸不到头脑了,我记得没有改什么依赖文件。解决办法是:首先修改Gradle配置文件,启用MultiDex并包含MultiDex支持:defaultConfig {        multiDexEnabled true   }dependencies { compile 'com.Androi

2017-08-03 12:55:28 295

原创 AndroidStudio意外断电,再起动后全部报错

今天上午办公室意外断电,再启动AndroidStudio发现全部文件报错,,,然后再重启还是全部报错,,,,瞬间感觉好方解决办法,,,,File>Invalidate Caches/Restart  问题解决了

2017-07-27 12:52:07 986

原创 安卓支付宝支付的小坑。。。。

因为项目要求,要添加支付宝支付,本人第一次搞支付宝支付,遇到一些小问题,特此Mark一下 相对微信支付来说,支付宝的文档还是比较人性化的。所以就下了支付宝的Demo,照着demo一步步搞就行了,,,,到了测试的时候发现报了个错—-》支付订单处理错误(ALI38173),我就纳闷,按着demo搞的呀,怎么会有错呢,,,就找了阿里文档关于ALI38173查看,问题定位到订单参数少了。。。。 再看看支

2017-06-20 11:06:16 338

原创 关于微信支付第一次成功,后面就不成功的坑。。。。

关于微信支付第一次成功,后面就不成功的坑。。。。所以在这里mark一下,,,这是我挑起微信支付的代码IWXAPI mWxApi= WXAPIFactory.createWXAPI(PurseExchargeActicity.this,wXpay.getAppid(),true);mWxApi.registerApp(wXpay.getAppid());//挑起微信支付,设置参数P

2017-06-16 09:24:32 9064 4

安卓二维码扫描jar包和Library

安卓二维码扫描jar包和Library

2016-11-08

Android API文档

安卓中文API文档

2016-10-14

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

TA关注的人

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