![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
安卓应用
HXL~
干!
展开
-
手撸一个 aidl
先看一下效果图:源码在这里安卓中跨进程通信是通过Binder。而我们在代码中使用Binder的方式就是定义一个 aidl 文件编译后会自动生成相应的 java 文件。本篇抛开 aidl 文件,动手写一个可以实现跨进程通信的demo。在开始之前先看几个问题:1、aidl接口文件是 java 用于跨进程通信的工具,那如果是在同一个进程中 aidl 还能用吗?2、transact 和 onTra...原创 2020-01-03 10:42:26 · 337 阅读 · 0 评论 -
一张图带你彻底理解安卓MVP设计模式原理
首先看一眼项目结构: 然后看一眼MVP原理图: 最后说明下起到衔接作用的OnLoginListener: OnLoginListener: 自定义的网络请求回调接口,在modle层的IBeanImpl中的网络请求回调中,调用自己写的OnLoginListener回调。 然后在Presenter中,调用modle层的请求网络的方法,就可以通过OnLoginListener这个回调拿到请求结果原创 2017-08-31 09:29:01 · 830 阅读 · 0 评论 -
VirtualAPK宿主和插件交互解析
VirtualAPK最大的特色在于支持宿主和插件之间的数据交互,在官方文档中也介绍了VirtualAPK数据交互的原理方法,但是我相信还是有很多人对此一头雾水,首先上一张官网的交互教程: 一、数据交互原理官网中提到了aar这个文件,这是安卓特有的一种压缩格式,对于jar文件大家肯定都不陌生,jar文件可以理解为代码的压缩文件,而aar可以理解为代码+res资源的压缩文件。有人看到这个aar肯定第一原创 2017-08-29 10:48:13 · 1217 阅读 · 0 评论 -
安卓集成微信支付总结 适合新手
官方介绍:1、商户服务器生成支付订单,先调用统一下单API生成预付单,获取到prepay_id后将参数再次签名传输给APP发起支付2、在net.sourceforge.simcpux.wxapi包路径中实现WXPayEntryActivity类(包名或类名不一致会造成无法回调),在WXPayEntryActivity类中实现onResp函数,支付完成后,微信APP会返回到商户APP并回调o原创 2017-03-09 09:22:35 · 563 阅读 · 0 评论 -
安卓 WebView 使用小结 避免内存溢出 适合新手
如今安卓APP重大多都用到了WebView+H5混合开发,废话不多说,先来总结下WebView两个重要的类:WebViewClient:类中有很多方法,帮助我们随时监听网页的加载状态1、shouldOverrideUrlLoading(): 网页中所有的加载动作都可以通过这个方法拦截获取2、onPageStarted():加载页面之前调用3、onPageFinished():原创 2017-03-16 09:14:19 · 3710 阅读 · 0 评论 -
安卓 集成环信EaseUI导致V4jar包冲突
在集成环信EaseUI时,由于EaseUI本身包含了V4.jar,所以在自己项目中直接导入EaseUI时可能会引起V4包冲突,其实究其原因就是,EaseUI的V4.jar包和你项目本身的v4.jar包版本不一致造成的。网上说了一大堆方法,有的说要在在自己的项目中添加配置,是自己的项目不使用自己V4,而去使用EaseUI的v4,其实最好的办法就是直接将 EaseUI的v4.jar包的版本改成和自原创 2017-03-23 09:34:34 · 2075 阅读 · 0 评论 -
阿里热更新sophix集成详解
今天集成测试了阿里最新的热更新技术sophix,单单就项目集成来说,阿里这次是真的下了一番苦功,相信集成过微信Tinker热更新的同学一定知道Tinker的集成是有多么的费劲!!!而且sophix采用非侵入打包,图形化的生成补丁,用阿里的原话说就是“傻瓜式接入”,点一点鼠标就能生成补丁文件,而且阿里提供了后台补丁管理系统,帮助开发者在生成补丁后直接上传至阿里的后台,无需开发者在自己的app和服务端原创 2017-07-05 18:32:23 · 3461 阅读 · 0 评论 -
安卓捕获运行时异常
安卓异常分为两类:CheckedException 和 UnCheckedExceptionCheckException:在编译代码时就需要进行try()catch捕获的。UnCheckException:所有的运行时异常,RuntimeException类和他的子类,都是在APP运行的过程中的发生的。即:APP在运行的过程中崩溃了,这种异常我们就成为运行时异常(比如空指针),当A原创 2017-02-27 22:53:10 · 770 阅读 · 0 评论 -
一分钟教会你解析任何复杂Json字符串:Android Stuoid GsonFormat插件+Gson.jar
最近在做项目的时候,经过高人指点,发现了一个快速解析任何复杂Json字符串的办法,使用完之后当场就惊呆了,我们不生产轮子,我们只是轮子的搬运工。说起Json字符串的解析,不可避免的就是自定义JavaBean,如果我们的Json字符串很简单还好,可以很快的定义出符合标准的JavaBean,但如果我们的字符串是一段非常复杂的Json,这时如果还自定义JavaBean的话就有点low了,下边给大家推荐一个原创 2016-08-23 16:04:04 · 1889 阅读 · 0 评论 -
安卓使用”百度地图SDK“的技术总结以及“常见错误处理”
由于最近做完了一个项目“停车位助手”是基于百度地图SDK的[我的项目APP开源在这里](github.com/haoxinlei1994),在开发期间使用百度地图的时候遇到了各种奇葩的问题,今天我就对百度地图SDK的使用进行一个总结,对以前经常犯的错误集中起来,希望可以帮助更多的人。如果有错误欢迎各位大牛指正。1. 下载SDK开发包时,一定要将想要实现的功能模块一起打包下载下来。 在使用百度地图之原创 2016-08-23 15:07:08 · 1366 阅读 · 0 评论 -
安卓自定义控件(View)(二)之接口回调机制实现TopBar的点击事件
在上一篇文章中,我介绍了如何自定义控件的基本三大步骤,上一篇文章麻雀虽小五脏俱全,在大的项目也是从小一点点做起来的,今天我就来说说如何给自定义的控件添加监听事件,并且对代码进行优化。说起安卓接口回调机制,我相信很多人尤其是像我这样的自学者,刚学的时候听起来更是一头雾水,今天我就在上一篇文章的基础上继续讲解(下面所讲纯是我对接口回调的个人理解,可能会很通俗,很适合新手,如有错误欢迎批评改正)原创 2016-08-09 17:30:50 · 695 阅读 · 0 评论 -
安卓(Android) 自定义控件 导航栏(TopBar)
作为一只安卓自学的小白,今天第一天发表微博还是有点小激动的,好了,废话少说下面开始我的安卓自定义控件知识总结。我的demo是一个自定义的TopBar,左边一个Button按钮,中间是一个标题,右边也是一个Button按钮。在安卓开发中自定义控件的技术是一个项目中不可缺少的一部分,下面我就用我的小demo一步步详细介绍,麻雀虽小五脏俱全,相信看完这篇文章对自定义控件肯定会有一个很好的掌握。首先来看一下原创 2016-08-07 10:48:14 · 4213 阅读 · 1 评论 -
通过自定义.xml文件实现各种效果的SeekBar
最近项目中用到了SeekBar,大家都知道系统给的“SeekBar”只能用一个“丑”字来形容,为了达到项目经理的各种需求,实现各种颜色各种样式的SeekBar我们只能自定义。今天我就通过在Drawable文件夹下定义各种.xml文件来实现好看的SeekBar。废话少说,直接上图 目前我的API版本是24,第一个SeekBar是我自定义的(其实也很丑,为了给大家演示),第二个SeekBar使系统默认原创 2016-11-05 18:41:10 · 1731 阅读 · 0 评论 -
RecyclerView解决条目错乱以及图片闪越+三级缓存机制
RecyclerView导致条目错乱的原因:viewHolder的复用,一个复用的ViewHolder他里边的View有些属性已经被修改了,所以新的item在使用服用的viewHolder时,那些被修改的viewHolder里边的属性还依然存在,所以会导致新的item也应用到了原来的viewHolder属性,导致出现错乱解决recyclerView加载图片闪越问题和图片错乱的问题原创 2017-03-01 12:58:05 · 3397 阅读 · 0 评论 -
Picasso 加载图片 缓存小结
Picasso:实现了图片的异步加载 和 缓存功能。而且1、在ListView中,不可见的item会被回收利用导致图片错乱,Picasso已经解决了这个问题,在ViewHolder被重用的时候,他会自动取消上次的加载2、使用复杂的图片压缩转换来尽可能的减少内存消耗3、缓存:自带内存和硬盘二级缓存功能,Picasso内部使用LruCache缓存机制,默认情况下是有缓存功能原创 2017-03-02 09:05:18 · 577 阅读 · 0 评论 -
安卓 JNI fork 监听程序被卸载
C语言中有一个一个函数叫做fork():分叉fork函数的作用:创建一个和现有进程几乎一样的另一个进程,所以叫分叉用途:用于监听APP程序被卸载返回值有三种:0:说明当前进程是子进程(新创建的进程)大于0:说明是父进程小于0:出错安卓中安装一个程序,会在SD卡上创建一个目录来存储APP: data/data/包名为原创 2017-03-03 16:31:27 · 580 阅读 · 0 评论 -
安卓 监听网络视频播放 卡顿
有两种方式设置视频监听卡:一、系统自带的监听卡对象在视频播放中,如果播放网络视频出现卡顿,需要对卡顿的情况做出处理:监听卡在安卓4.2以后,MediaPlayer.OnInfoListener类用来监听视频的卡顿,并且将监听卡封装在了VideoView中,通过:videoView.setOnInfoListener(new MediaPlayer.OnInfoListene原创 2017-03-08 09:31:57 · 2795 阅读 · 1 评论 -
bugly热更新上传补丁失败原因及解决办法
最近这两天一直在研究腾讯的bugly热更新,bugly团队是基于微信的Tinker热更新方案进行的进一步封装,意在简化程序员的集成难度,相信直接集成过微信Tinker的童鞋肯定深有体会!有很多童鞋在集成bugly的时候肯定或多或少都遇到过千辛万苦打好的patch补丁文件最后在上传至Bugly平台的时候却提示出错,如下图:原创 2017-07-07 10:16:16 · 6790 阅读 · 2 评论