android开发
文章平均质量分 51
android开发
nades
每天进步一点点
展开
-
Android URL Scheme唤醒之门
1、scheme的作用Android的scheme 是一种页面内跳转协议。通过scheme 可以进行页面跳转,可以是app之间的跳转,也可以是网页和app之间的跳转。2、scheme的定义协议://协议地址/端口/路径/参数scheme://nade/startapp?data="123456"协议:scheme(可以自定义)协议地址:(可以自定义)端口:(可以自定义)路径:参数:3、scheme的使用1、app内使用: /** *...原创 2021-04-20 21:05:47 · 572 阅读 · 0 评论 -
Android studio 真机调试WiFi ADB
由于前段时间的忙碌,一直没空坐下来码字,今日空闲又来更新了。今天记录并分享一个小技巧--Android studio 无线真机调试。一般调试都是以USB数据线调试的居多,但是特别的不方便,还浪费数据线。这里介绍一个使用WiFi进行真机调试的小技巧。在我们的插件管理窗口,搜索一下 wifi adb搜索结果如图:随便选择其一即可。我选择的是Android WiFi ADB。我选择他的原因是 star 他的人数最多。然后安装Android WiFi ADB,restart as ...原创 2021-02-01 19:02:31 · 594 阅读 · 2 评论 -
解决 please select android sdk 报错问题
这个问题出现的很诡异,明明几分钟之前还跑的好好的,但是就是下一秒就不行了。这个问题的出现:说明是SDK出现错误了,SDK组成元素确实,无法支持Android studio 进行正常的运行。所以只要重新下载一下SDK就好了。本文完。...原创 2020-11-09 10:02:31 · 6068 阅读 · 0 评论 -
weex之混合activity基类封装
综合对weex技术的学习心得,整理一个activity基类。已备后用。1、封装ComWeexActivitypublic class ComWeexActivity extends AppCompatActivity implements IWXRenderListener { private WXSDKInstance instance; protected ViewGroup mContainer; /** * 获取根视图 * @retu.原创 2020-10-13 15:50:54 · 349 阅读 · 0 评论 -
weex和Android的跳转
记录一下,weex和Android的跳转主要表现为三个方面:1、weex 跳转的原生界面 这种方式需求可以通过module扩展的实现。public class WeexCallBackModule extends WXModule { /** * 用于module注册 * @return 返回类名 */ public static String getLocalName(){ return "WeexCallBackMo...原创 2020-10-12 19:14:13 · 505 阅读 · 1 评论 -
weex 和 native 的交互
先说一下 Android的扩展能力之module一、module扩展 是用于weex和Android的数据交互。有三点要注意的地方:1、必须继承WXModule,并且不能被混淆2、必须添加@JSMethod (uiThread = false or true) 注解,必须是public方法3、module必须注册数据交互就是通信。具体的厘子如下:1、创建WeexCallBackModule类继承自 WXModule2、创建两个方法 方法1:call(String msg,J...原创 2020-10-12 19:11:06 · 449 阅读 · 1 评论 -
Java单例模式详解五种实现方式
简述:单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。目的:保证一个类有且仅有一个实例,并提供一个访问它的全局访问点。解决问题:管理一个被高频率使用的类,被频繁的创建和销毁。只用单例能更好的节省程序执行时间和减少空间内存的使用。原创 2020-09-30 11:30:20 · 281 阅读 · 0 评论 -
项目结构优化设计之smv架构
我的项目经历了三次结构性变化第一次:单module+mvc结构。随着项目业务的拓展,项目分包的差异化变迁以及团队人员的扩充,传统的单module方式明显已经不再适应团队和项目了。基于这种情况,我开始着手对项目进行结构调整。具体结构如下图:第二次:组件化+mvp结构根据根据业务进行组件划分,单人维护业务module,单module 运行、开发、调试;提高工作效率。具体结构如下图发展到现在,这个结构还能支持团队和项目需要,但是造成了分包维护的困难,对工作质量的上升也遇到了瓶颈。基于此我进行了原创 2020-09-28 14:52:50 · 709 阅读 · 0 评论 -
Android camera 篇之视频录制
本文是camera系列文章第一篇,预计三篇 :一 拍照;二 视频;三 自定义相机相机功能是我们最常用的,属于andorid基础能力。本文讲述一下Android如何调用相机进行录制视频。流程获取权限唤醒相机录视频并播放一、获取权限 /** * 所需权限数组 相机 读 写 */ private String[] permissions = new String[]{"android.permission.CAMERA", "and原创 2020-08-20 14:12:41 · 998 阅读 · 0 评论 -
Android camera 篇之拍照
本文是camera系列文章第一篇,预计三篇 :一 拍照;二 视频;三 自定义相机相机功能是我们最常用的,属于andorid基础能力。本文讲述一下Android如何调用相机进行拍照。废话不多说,直接上流程。流程介绍请求权限开启相机拍照并处理结果先介绍一下请求码private int takeCameraCodeOne = 1000; // 获取缩略图 private int takeCameraCodeTwo = 1001; // 获取全尺寸图 private i...原创 2020-08-19 20:59:15 · 691 阅读 · 0 评论 -
Android集成weex汇总
weex指北针集成环境IDE Android studio v3.1.2JDK jdk1.8根据文档说明,我一路next走下来,发现并不能正常跑起来,经baidu,google,github后,整理出一套完整的集成步骤;首先说一下文档上的内容1、app module下添加依赖(我的targetSdkVersion 28 ) implementation 'org.apache.weex:sdk:0.28.0' // fastjson...原创 2020-08-11 13:29:53 · 905 阅读 · 0 评论 -
java 时间转换之LocalDate,LocalTime ,LocalDateTime的使用篇二
上一篇说了 LocalDate,LocalTime ,LocalDateTime的基础使用;本文主要是说LocalDate,LocalTime ,LocalDateTime的比较,特殊时间格式的处理,一段时间的获取1、首先写一些基础方法/** * 指定时间住那换为时间戳 * @param time 只能是时间格式,例如 HH:mm:ss、HH:mm、mm:ss 15:30:55、15:30、30:55 * @param formatter HH:mm:ss、HH:原创 2020-07-02 16:50:49 · 2052 阅读 · 0 评论 -
RecyclerView拖动之ItemTouchHelper.Callback的使用
关于RecyclerView拖动效果先看以下效果图android给了一个官方的工具ItemTouchHelper.Callback下面上代码,先说以下RecyclerView的使用<android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android..原创 2020-06-24 17:36:29 · 1596 阅读 · 0 评论 -
java 时间转换之LocalDate,LocalTime ,LocalDateTime的使用篇一
关于时间转换第一时间我们会想到 Date,SimpleDateFormat,calendar进行转换;但如果Date不格式化,打印出的日期可读性差。使用SimpleDateFormat对时间进行格式化,但SimpleDateFormat是线程不安全的。calendar是共享变量,并且calendar没有做线程安全控制,多线程同步调用时会发生时间错误;此时 java 8退出全新的时间和日期工具类;具体如下:LocalDate(日期工具类:yyyy-MM-dd);LocalTime (时间.原创 2020-06-23 14:24:00 · 2744 阅读 · 1 评论 -
自定义相册并获取手机媒体库中视频文件和图片文件
时隔三个月,又来更新文章了。愿一切安好,奋力向前;最近有一个选择手机本地视频和图片的需求,需要做一个自定义相册;先看一下具体的效果:类似于这种的效果。、首先说一下这种排列效果就不多说了,网上一大堆,说多了也是没什么营养。一句话万能的RecyclerView,不明白的自己去找好了。本文重点是放在查询设备中的图片和视频文件并获取视频的缩略图。思路:这两中情况归结到底就是一种情况,那就是获取本地文件并展示。只不过是文件格式不同,后期处理不同。1、获取读取手机文件的对应权限(就原创 2020-06-15 17:32:44 · 1203 阅读 · 0 评论 -
retrofit+rxjava+okhttp网络框架之二次封装
retrofit+rxjava的是这几年很流行的一种网络框架,开发者也提供了丰富的方法。之所以进行二次封装,就是因为retrofit+rxjava的链式调用太方便了,不符合单一性原则,管理起来比较麻烦。主要目的是二次封装后,和项目有很高的契合度更高。说一下封装思路,由于其本身调用方便,具体方法就不做封装了。第一 retrofit对象封装。第二 封装okhttp拦截器,用于添加头参...原创 2020-03-11 20:00:31 · 806 阅读 · 1 评论 -
app启动优化和启动页适配方案
写在前面,关于启动页适配方案,百度了一下网上的解决办法,发现很多人使用xml布局文件和启动大图的方式进行启动页适配,还有进行了宽高比进行多图适配,我反复实验后,发现这两种方式并不是很好,大部分主流机型都存在拉伸和变形的情况。我就写下我的方案,供大家讨论。app启动优化,目的是喂了提升用户体验。防止出现启动慢,启动白屏问题。一般在启动app时,我们会在application中初始化一些工具...原创 2020-03-10 19:27:16 · 2380 阅读 · 0 评论 -
Activity的神奇启动模式之singleTask
singleTask 模式Activity的启动模式之一,是一种栈内复用并activity实例唯一的一种模式。他的特点就是栈内复用,并且会清除所在栈内自身实例上面的所有activity实例(LAUNCHER Activity除外)。今天特此记录,关于singleTask 模式下 Activity的跳转传值和使用注意事项。一 验证 singleTask 模式 Activity 的启动和复用。...原创 2020-03-09 17:40:42 · 840 阅读 · 0 评论 -
学习kotlin第一天,kotlin方法、kotlin条件表达式、kotlin循环语句和when表达式
经过长时间的断更后,从今天开始继续更新和学习。今天学习了kotlin方法、kotlin条件表达式、kotlin循环语句和when表达式。一一记录。/**有参有返回方法1*/fun sum(a: String,b: String) = a + b/**有参数有返回方式2*/fun sum1(a:Int,b:Int): Int{println(“这是一个有参数有返回的方法书写...原创 2020-03-04 23:05:06 · 475 阅读 · 0 评论 -
自定义Dialog 防止物理键关闭 和 点击外部点击关闭
平时工作中,dialog是一种经常使用的控件。物理返回键和点击外部关闭,适用于轻提示类,设计者不关心这种情况的交互,类似于通知的使用情景。还有一种情况,必须用户知晓的和操作的dialog.现在有两种情况,一是,点击外部不可关闭,二是,点击物件键返回不关闭。final Dialog dialog = new Dialog(context, com.nade.commenlib.R.style.M...原创 2020-01-17 11:37:10 · 1635 阅读 · 0 评论 -
高德地图之路线规划 多点路线规划路线最短原则之二 TSP算法
经过这段时间的使用和研究,我发现点和点之间的最短路线并不是最优的。针对所有点的组合可能,得到的最短路线才是最好的(也就是TSP方法),然后再结合点对点之间的距离进行比较,得到的才是相对最优方案。举例:A、B、C、D四个点。自由组合,得到最短路线方案。所有的组合路线应该是(此处我们只需要四个点的组合)ABCDABDCACBDACDBADCBADBCBACDBADCBCADB...原创 2019-12-26 14:11:57 · 9756 阅读 · 2 评论 -
android 一键打包。一键打出不同包名、应用名、版本名、签名、应用图标、版本号的安装包
不同图标和不同应用名 适用于多平台上传问题不同意包名 适用于马甲包不同版本名 适用于多平台版本不同问题不同应用图标、不同包名、不同版本名、不同签名。适用于一套代码打出多个应用本文主要使用gradle执行打出不同应用名,不同应用图标的包flavorDimensions “nade”productFlavors{app1{resValue “string”, “app_name”, ...原创 2019-12-19 10:21:42 · 1378 阅读 · 3 评论 -
SQLiteOpenHelper数据库增删改查和数据库升级操作
public class DbHelper extends SQLiteOpenHelper {private Context context;public DbHelper(Context context){super(context,DbManager.DB_NAME,null,DbManager.DB_VERSION);}public DbHelper(Context contex...原创 2019-12-13 15:03:13 · 929 阅读 · 0 评论 -
第三方之QQ\微信分享
有很多社会化分享平台 例如umeng sharesdk 都可以做到分享第三方我是不想让apk太大 所以直接集成了 qq 微信目标很简单,操作也简单。说一下流程1、申请账号就说一点吧,关于qq 的 在开放平台创建项目后,可以直接在qq互联平台直接申请获取qq的一些基础能力就可以了。不必要提交产品上线,也不需要单独创建ios项目了。这是最近qq的一个非常nice改变。审核速度也是很给力的。...原创 2019-12-13 10:53:15 · 359 阅读 · 0 评论 -
自定义editext自定义Filte只能输入汉字,禁止输入特殊字符,空格限制小数长度,字母大小写互转
/**editext 常用相关工具*/public class EditUtil { // 设置只能输入汉字public static void setInPutNameFilter(EditText et,int length){InputFilter filter = new InputFilter() {@Overridepublic CharSequence filt...原创 2019-12-06 13:31:42 · 347 阅读 · 0 评论 -
Android Monkey 真机测试并收集日志
首先进行环境变量配置 下载jdk 安装jdk 配置jdk 环境变量 然后配置android 环境 安装android SDK 配置路径 当然如果使用 AS 的话可以一起安装 就不用进行单独安装了 环境变量如果不会安装请自行百度安装好以后 创建一个项目 然后打包进行真机测试 monkey 可以使用AVD 进行测试 为了更符合客户使用场景 还是使用真机进行测试首先打包 选择手机 安装app 连接a...原创 2018-10-16 13:57:34 · 769 阅读 · 1 评论 -
Android 网络安全之https
简单说一下 http 和https 的区别 http是应用层协议 而https是http 的升级版 是网络安全大趋势之下的产物 在现有条件下 常规的http已经无法保证数据和平台的安全,所以https 已成大势 目前的http 通过一些工具是可以抓取到数据的 例如Fiddler ,charles 就能轻易抓取http的请求数据 而https 则可以轻松避免这种抓取数据的方式http ...原创 2018-10-18 21:43:05 · 680 阅读 · 0 评论 -
Android app唤醒第三方地图App进行导航(高德,百度,腾讯)
根据项目需要 要添加导航功能 由于我的app 的内部已经做了地图和路线规划 同时为了使用用户的使用习惯 我选择了第三方导航 选择用户已有地图软件进行路线规划和导航我选择的是目前的主流地图app平台 高德 百度 腾讯 三种导航软件 至于google 地图 由于某些原因 我放弃掉了说一下我的思路先检索手机是否安装了目标地图app(高德,百度,腾讯) 如果有安装其中之一 提示用户跳转打开地图 如果...原创 2018-10-09 13:21:20 · 8591 阅读 · 3 评论 -
IllegalStateException:content of the adapter has changed but ListView did not receive a notification
java.lang.IllegalStateException: The content of the adapter has changed but ListView did not receive a notification. Make sure the content of your adapter is not modified from a background thread, but...原创 2018-10-13 20:20:00 · 467 阅读 · 0 评论 -
android 点击两次back 键退出app
首先建立一个管理类 管理堆栈 public class AppManager { private static Stack activityStack; private static AppManager instance;private AppManager(){}/** * 单一实例 */public static AppManager getAppManager()原创 2017-12-08 14:06:09 · 615 阅读 · 0 评论 -
Android 代码混淆小结
混淆是对自己劳动成果的一种保护 今天就总结一下 我最近这段时间的使用心得 在这里做下记录(以AS举例说明)首先看一下混淆配置 (module的build.gradle文件)buildTypes {release { // 混淆对象minifyEnabled false 混淆开关proguardFiles getDefaultProguardFile(‘proguard-andro...原创 2018-10-31 13:04:44 · 412 阅读 · 0 评论 -
Android 使用抽象方法解耦第三方过度依赖问题
路由 网络等等 使用第三方能是我们更高效的完成任务 但是过度依赖第三方也会带来高耦合问题使用的不好 对以后的迭代切换框架时造成极大的麻烦 下面说一下本人的解决方案 能很好的管理第三方框架下面以glide为例 进行阐述添加glide依赖 ‘com.github.bumptech.glide:glide:3.8.0’glide 是一个强大的图片加载框架 他的强大功能我就不介绍了 说一下...原创 2018-11-03 17:01:48 · 736 阅读 · 0 评论 -
Android 高德地图之拖动定位、多点路线规划给路段设置不同颜色
又有新需求 所以继续地图开发 这里记录两点 一是拖动定位 二是对多点路线规划不同路段设置颜色 下面给出效果图看一下 再上干货先推荐一个拾取经纬度工具 http://www.gpsspg.com/bs.htm由于上传大小受限 gif就不上了https://www.jianshu.com/p/f6821974e463 点击可查看效果先说第一种效果 拖动定位 这个效果还是很简单的实现的说一...原创 2018-12-10 09:51:09 · 5137 阅读 · 2 评论 -
android apk签名打包V1+V2签名工具(含下载链接)
近来 为了维护项目的安全性 解决应用签名的安全问题 采用了此签名方案 目前市场上 仍没有同时支持 v1 和 v2 的 签名工具(android studio除外) studio 可以应用打包时 对应用进行v1+v2 签名 但是在经过加固后 签名信息被抹除了 加固后 使用第三方签名工具进行签名 输出的是只有v1的签名信息为什么使用v1+v2组合签名方案 第一官方推荐的签名方案 是因为v1...原创 2019-07-10 16:44:00 · 8134 阅读 · 1 评论 -
Android应用安全和合规方案
最近遇到合规 关于应用整改有点心得 再次记录一下安全 就是让我们的应用更安全 让用户数据更安全 提高用户体验 等等好处下面说一下我的安全方案 以及主要目标第一 防止动态注入第二 防止被调试第三 防止界面劫持第四 防止被破解 二次打包这几个最主要的目标 当然在大牛面前 这些东西 可能不够看 后期会继续努力完善版本是Java层面的版本 native 和 c 这一方面会更好 动态...原创 2019-07-10 21:52:36 · 1115 阅读 · 0 评论 -
android错误日志收集bugly使用异常日志分析
bugly 是腾讯推出的一款不过收集工具 对于线上线下的bug修复和处理有很大帮助简单记录一下bugly集成首先注册账号 https://bugly.qq.com创建项目然后配置项目module 的 build.gradeimplementation ‘com.tencent.bugly:crashreport:latest.release’添加权限并配置项目的 appi...原创 2019-07-20 20:12:03 · 1268 阅读 · 0 评论 -
SQLiteOutOfMemoryException: Could not open database 分析和解决方案
Crash: android.database.sqlite.SQLiteOutOfMemoryException: unknown error (code 7): Could not open databaseat android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)at android.database.sq...原创 2018-10-13 20:17:34 · 3084 阅读 · 0 评论 -
Android 自定义View 之 可随意拖动的View
因为赶项目本人停更两个月 从今天开始又可以更新了 今天说一下这个可随意拖动的view 简单说一下这个view效果 和 发展 一开始这种效果是使用在网页端的特别是购物类 例如某宝 某东 购物车和客服窗口 都有使用这个悬浮可拖动的设计效果 后来才发展到的移动端 还有手机桌面也是用到了这种效果 例如某族手机的消息中心 手机桌面的悬浮球 某讯 和 某荣耀手游 某吃鸡游戏 某视频软件等等也都是这种效果 这种...原创 2018-10-04 13:52:34 · 2452 阅读 · 0 评论 -
Android Exception 记录合集
step oneCaused by: java.lang.IllegalStateException: Unexpected inputs: ImmutableJarInput{name=pl.droidsonroids.gif:android-gif-drawable:1.2.7org.gradle.api.tasks.TaskExecutionException: Execution ...原创 2018-08-09 10:39:47 · 1056 阅读 · 0 评论 -
Android PickView 高仿ios 时间选择器(城市或多级选择器) 多种格式任你选择
目前 基于设计的原因 我们android 端开发 在很多ui 的设计风格上大多走效仿ios的道路 一是很多ui和设计为了效果统一 二是 设置起来很方便 会android设计的ui毕竟不是很多 三是ios风格确实简约美观 当然也看得出来ios对客户的体验以及感官影响是多么强大 不过我相信 在这个飞速发展的时代 android的历代先贤的努力下 自主化以及人性化大条件下 android的主题风格也必然...原创 2018-04-12 12:06:27 · 21336 阅读 · 0 评论