- 博客(39)
- 收藏
- 关注

原创 权限终极封装——AOP之权限处理
我们都知道,在Android6.0后,权限申请需要动态授权处理,才能通过。这样的设计也更加符合现在用户的安全体验。那么,对于一个应用,我们可能在不同的场景,需要多次申请不同的权限。比如,在做缓存的时候,需要申请sd卡读写权限,在拍照上传图片的时候,需要申请拍照权限等。对于这样的请求,我们一般是怎样去处理封装的呢?项目地址一、常见的权限处理封装可以看到,这样处理并不理想,耦合性还是太高了...
2018-10-30 15:03:14
729

原创 进程间通信
我们都知道,由于不同进程间的内存是不可见的,所以,这就给在于不同进程间的对象的访问带来了麻烦。列如:在A进程中有一个User单例对象,在A进程中,获取该对象getInstance(),都是同一个对象。但是,如果在B进程中调用getInstance(),则此时的对象将是一个新的对象了。我们先来看下面一张图:点击查看完整项目如上图所示,我们现在如果要实现跨进程通信,需要解决以下几个问题:...
2018-10-10 15:57:40
393

原创 第四篇:小程序之缓存策略
缓存key分为内存缓存和本地缓存。如果是持久化的,需要缓存到本地中。但是,小程序中对于一些特殊结构的对象,如Map、Set的缓存是不支持的。那如果非要缓存呢,该如何实现呢?且听我娓娓道来。 点击我查看完整项目一、内存缓存 java中,内存缓存经常用到的是集合,List、Set、Map、数组 等。那么小程序都有啥呢?答案是数组、Set、Map集合,没有List集合。当然...
2018-09-15 16:00:16
4455

原创 MVP框架——MvpFrame
MvpFrame MvpFrame是一款是一款MVP通用框架,使用简单,有效的解决项目中的高度耦合性,使项目更有层次结构。 版本更新记录版本更新记录前序 随着项目的功能迭代,传统的MVC架构已经很难满足开发需求了,高耦合让维护成本变得越来越高,代码冗余程度也越来越高,代码最后变得臃肿不堪。所以,在实际项目中,我们跟多的选择MVP架构。MVP架构是代码结构...
2018-03-06 17:23:24
989
原创 Android.mk补充笔记
gcc --sysroot=目录1 -isysroot 目录2 -isystem 目录3 -I目录4 main.c。使用xx作为这一次编译的头文件与库文件的查找目录,查找下面的 usr/include usr/lib目录。app.apk: app.java+ jar包(a.java b.java c.java)在4.4上 如果load一个动态库 ,需要先将这个动态库的依赖的其他动态库load进来。jar包 =》 a.java b.java c.java。查找 目录1/usr/lib 的库文件。
2022-12-26 23:38:33
358
原创 LES11:shell学习
将这些指令放入一个Shell脚本中,执行Shell脚本就是执行这些命令。将这些指令放入一个Shell脚本中,执行Shell脚本就是执行这些命令。代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,…代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,…表示告诉系统这个脚本需要哪种解释器来执行(属于哪种Shell程序)。执行新建的Shell脚本之前需要使该脚本权限为可执行。执行新建的Shell脚本之前需要使该脚本权限为可执行。其中,bash由于易用和免费,被广泛使用。
2022-12-26 23:36:34
196
原创 Ubuntu 20.0.4 新手准备
二、安装搜狗输入法下载输入法安装包https://pinyin.sogou.com/linux安装输入法https://pinyin.sogou.com/linux/guide三、硬盘挂载点击桌面的Disks软件,然后进入需要挂载的盘,然后将该盘分配到指定目录下面即可。如下图所示:挂载后,重启成功的状态:参考文档:http://t.zoukankan.com/jiahangok-p-12015441.html1、打开终端,使用wget下载最新的Google Chrome .deb软
2022-06-15 18:08:37
621
原创 第五篇:小程序之关于项目优化的思考
由于小程序是轻量级的,所以架构设计方面不像移动端,有MVP、MVVM、插件化、组件化这么多成熟的架构可以使用,现在市面上关于小程序架构方面的设计还是很少的。当然这些都是一些思想。我们可以从一个小模块去思考该怎么去设计。总之,能达到降低耦合性,减少代码冗余,提高复用性为目的。 在这里插一句,小程序的表现形式,倒是跟Android的MVVM很类似,都是可以直接在xml文件中直接响应数据源的...
2018-09-15 17:13:41
260
原创 第三篇:小程序之网络请求
对于小程序而言,网络请求封装的要比Android强大多了,这一点值得赞扬。官方示例:wx.request({ url: 'test.php', //仅为示例,并非真实的接口地址 data: { x: '' , y: '' }, header: { 'content-type': 'application/json' // 默认值 }, s...
2018-09-15 14:33:55
390
原创 第二篇:自定义组件——购物车控件
本文将结合案例,来阐述自定义组件实现。先来上图 这个是一个购物车的数量组件。主要思路: 1、可以手动的输入具体的数量 2、可自定义设置最小值、和最大值。当是最小值时,“-”号置灰,并不可点击。当是最大值时,“+”号置灰,并不可点击。 3、当手动输入“0”开头的数字时,自行过滤,禁止输入,只值输入非0数字。 4、当手动输入数字大于最大值时,输入框失去焦点,默认将输入值...
2018-09-14 23:28:31
353
原创 第一篇:小程序之语法篇
关于Android的技术博客好久没更新了,为什么呢?答案是由于公司业务需求,从一个Android移动端攻城狮转变成了一个写小程序的前端攻城狮。虽然小程序上手比较容易,但是,这个是相对的————前端攻城狮上手比较容易。而对于移动端,那绝对的是nonono~了。 相信如果是从Android转过去的,会有各种的吐槽。不仅仅是语法的规范,语法简直弱爆了,还有编译器的问题。微信web开发工具相...
2018-09-14 18:43:14
2663
原创 MvpFrame架构设计策略
MvpFrame架构设计策略 MvpFrame是一款是一款MVP通用框架,使用简单,有效的解决项目中的高度耦合性,使项目更有层次结构。 前序 随着项目的功能迭代,传统的MVC架构已经很难满足开发需求了,高耦合让维护成本变得越来越高,代码冗余程度也越来越高,代码最后变得臃肿不堪。所以,在实际项目中,我们跟多的选择MVP架构。MVP架构是代码结构层次更加清晰、项目更加...
2018-03-06 17:25:07
299
原创 框架通用工具类CommonLibrary
CommonLibrary CommonLibrary是一个工具类通用框架,旨在为开发者提供各类开发工具,以提高开发效率。本库也将持续更新联系方式 github地址:https://github.com/Alin520/CommonLibrary。 掘金地址:https://juejin.im/post/5a7941c96fb9a0633f0dfe64 优快云...
2018-03-05 17:50:56
2013
原创 Banner轮播图
一、前序AlinBanner是一款Android轮播控件、引导页面滑动框架。支持有限、无限循环,可以自动、收动播放,支持自定义指示器,支持各种样式的自定义和多种图片类型,如Url、drawable加载。也可以选择酷炫切换动画的切换和自定义动画的扩张。是一款简单,易扩展、易使用框架。 虽然市面上已经有很多人在写这个图片轮播框架了,但是质量参差不齐,有很多功能都不全面,或多或少都由这样或者那样的...
2018-02-05 23:33:17
5956
2
原创 第二篇、MVP框架完成
GitHub项目地址 上一篇 一、框架的优点: 1、本框架支持两种架构,更加灵活使用。如果是MVC,则子类Activity只需继承CommonActivity,如果是使用mvp架构,则子类的Activity需要继承MvpActivity。 2、Presenter的生命周期与Activity、Fragment的生命周期绑定,Activity、Fragment创建(onCreat
2017-11-27 14:19:00
385
原创 第一篇、开题篇 mvp+rxjava+retrofit架构
开题篇下一篇 mvp框架完成 GitHub项目地址 从事Android四年多来,接手的项目也是各式各样,所以,不同项目中用的框架也是五花八门,项目中涉及的技术也是形形色色,这其中,有的开始用的很爽,但是,随着版本的不断迭代,慢慢的发现有很别扭,被诟病了。有的是从始至终就一路暴爽。比如:之前的一个项目,是购物平台类的。需要是这样的:开始商家端和买家端在一个应用中,后来要把商家端的独立出来,单独开
2017-11-27 11:34:35
768
1
原创 对contentView的点击事件的理解
一、关于对contentView的点击事件的理解 1、获取任意Activity的contentView ViewGroup contentView = ((ViewGroup)activity.findViewById(android.R.id.content)); 2、获取contentView 的最外层(即下图的test_linearlayout) View outVie
2017-11-17 15:23:14
1687
转载 Android RxJava使用介绍(三) RxJava的操作符
<div class="markdown_views"><p>上一篇文章已经详细讲解了RxJava的创建型操作符,本片文章将继续讲解RxJava操作符,包括:</p><ul><li>Transforming Observables(Observable的转换操作符)</li><li>Filtering Observables(Observable的过滤操作符)</li></ul><h2 id=
2017-01-12 16:25:03
276
原创 seekBar滑块验证解锁
一、项目背景 最近项目比较忙,所以,这次更新文章比较慢,还请jrs们多多给我提建议哈。本次的内容是最近项目中的一个需求,当密码输错三次后,需要通过滑块验证解锁,来再次显示密码输入框!直接上图看效果哈!!! 说明下效果哈: 当滑块没有滑动到最右端,即滑块没有变成对号的时候,如果手指松开,拖动即停止了,这个时候滑块会自动的回到起始的位置。如果滑块滑到最右端,即滑块变成对号的时候,进度条的中
2016-11-21 16:18:05
2840
原创 MPAndroidChart饼状图
继昨天写的这些图后,今天趁热打铁,写了市面上常见的数据统计图——柱状图和饼状图。有兴趣的可以看看我上一篇博客——柱状图篇。柱状图,这篇主要讲述的是饼状图,来吧,直接上效果图,骚年。 一、效果图 二、代码 List<String> xVals = new ArrayList<>();//饼状图分成多少份 xVals.add("Java"); x
2016-10-10 17:02:01
732
原创 MPAndroidChart柱状图
继昨天写的这些图后,今天趁热打铁,写了市面上常见的数据统计图——柱状图和饼状图。有兴趣的可以看看我上一篇博客——折线图篇。折线图,这篇主要讲述的是柱状图,来吧,直接上效果图,骚年。 一、效果图 二、代码 int max = 16; //x轴方向上的坐标值 //List<String> xVals = BarData.generateXVals(0,
2016-10-10 16:55:59
1187
原创 热补丁Nuwa配置说明
一、Build.gradle的配置在工程的根build.gradle文件中添加classpath 'cn.jiajixin.nuwa:gradle:1.2.2'然后我们的build.gradle文件可能长这样:buildscript { repositories { jcenter() } dependencies { classpath
2016-10-09 13:43:03
593
原创 MPAndroidChart折线图二
上接MPAndroidChart折线图一 3. public LineChartTools( LinkedList<Map<String,Integer>> list, Context ctx,LineChart lineChart, String name, String dateStart, String dateRange, TextV
2016-10-09 13:02:47
1056
原创 MPAndroidChart折线图一
背景: MPAndroidChart折线图,是由于项目中要用到,所以这次把在做的过程中,所用到的api(网上很多,所以这里不是重点),以及遇到的问题和怎样解决问题写了这篇文章。如果过程中有问题,希望大家及时的提出来,一起共同进步。一、直接上需求效果图 随着移动x轴坐标,对应的时间点和扫码次数都发生改变二、功能的实现(基本API的介绍) 1、设置图表数据 public void
2016-10-09 12:07:37
1125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人