![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Android
LL继续前进
是谁说:月有阴晴圆缺,花有盛放残飞?
展开
-
Google开发者交流群
Google开发者交流群原创 2022-07-19 11:50:21 · 694 阅读 · 14 评论 -
Android 多渠道配置
多渠道打包早已不是什么新技术,网上一搜千千万万数不尽数,但是对于没使用过的开发者,看了网上复制又复制的文章却是一头雾水,完全找不到符合自己需求的多渠道配置,以下总结:需求:不同渠道,配置不同包名。不同渠道,不同app名称。不同渠道,icon需要对应。不同渠道,版本号需要单独指定。代码撸起来:gradle的多渠道配置,利用productFlavors 需要几个包就配置几个马甲,在a...原创 2020-01-21 18:27:58 · 3141 阅读 · 0 评论 -
Android——抽奖转盘的实现
百度日前已经正式从美国加州机动车辆管理局获得了测试自动驾驶汽车的许可。事实上,早在今年四月,百度就宣布在硅谷建立了无人驾驶技术团队,同时计划在今年年底将团队规模扩大到超过100人。该团队目前由机器学习研究人员、软件工程师和硬件工程师组成,涉及机器人、机器视觉和传感器研发领域。此外,百度还在硅谷大量招聘具有汽车行业经验的从业者。本文转载Nipuream 的博客前言:最近需要实现一个抽奖的控件,我简单搜转载 2016-10-05 09:08:34 · 5649 阅读 · 1 评论 -
synchronized 详解
记下来,很重要。Java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。 一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块以后才能执行该代码块。 二、然而,当一个线程访问object的一个synchronized(t转载 2016-09-05 20:09:28 · 307 阅读 · 0 评论 -
Android——了解Fragment懒加载、Material Design、picasso的应用。
有些天没有写博客了,这两天写了一个demo,今天分享给大家,关于Fragment的懒加载,现在很多应用都应用到了懒加载,如网易、今日头条、微信等等,非常普遍,design扩展的伸缩效果,市场上应用的比较少,但是这一类都会被成为流行派,我们还是掌握一些较好;Picasso强大的图片缓存框架,也比较常见了。那我们马上动手吧!我们一点点的分析,不急着看整体效果,先带大家看下项目结构: 从Fragment原创 2016-08-12 15:04:14 · 1777 阅读 · 0 评论 -
Android——MVP架构模式之入门demo
什么是MVP?MVP(Model - View - Presenter , 模型 - 视图 - 表示器)模式则是由IBM开发出来的一个针对C++和java的编程模型,大概出现于2000年,是MVC模式的一个变种,主要用来隔离UI、UI逻辑和业务逻辑,数据。MVP与MVC的区别?MVP——Model-View-presenter 它是MVC模式的变种,UI容易变化的,且是多样的,一样的数据会有N种显原创 2016-08-23 10:45:46 · 4039 阅读 · 1 评论 -
Android——ScrollView嵌套ListView/GridView的问题
很多时候都能用到ListView,GridView控件,相对来说,GridView嵌套的比较多,比如在ScrollView中嵌套GridView,如果你在xml中直接写(如下):<GridView android:id="@+id/person_gridview" android:layout_width="match_parent" android:layout_height="原创 2016-09-10 09:54:05 · 506 阅读 · 0 评论 -
java——正则表达式整理
一、校验数字的表达式 1) 数字:^[0-9]*$ 2) n位的数字:^\d{n}$ 3) 至少n位的数字:^\d{n,}$ 4) m-n位的数字:^\d{m,n}$ 5)零和非零开头的数字:^(0|[1-9][0-9]*)$ 6)非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$ 7) 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?原创 2016-08-19 15:30:16 · 421 阅读 · 0 评论 -
Android——你了解NavigationView(侧滑) 和 CoordinatorLayout(伸缩)吗?
前两天看了郭大神的一篇文章 Android提醒微技巧,你真的了解Dialog、Toast和Snackbar吗?,自己动手写了一个例子,事实证明平时在开发中,并没有注重到这些细节,这篇文章让我学到了不少东西,今天在这里介绍NavigationView(侧滑) 和 CoordinatorLayout(伸缩)的操作,网上有很多例子觉得都很不错,但是被人再好的代码都不及自己动手写的demo,毕竟自己实践才是原创 2016-08-03 11:34:22 · 2073 阅读 · 2 评论 -
Android代码混淆
前言混淆是上线前挺重要的一个环节。android使用的ProGuard,可以起到压缩,混淆,预检,优化的作用。但是很多童鞋还没有掌握正确的写混淆文件的姿势。我希望搞个模板化的东西,让大家轻松搞定混淆。那么,开始写一个项目的混淆吧。。。我是不是很直接。。。。五步搞定1打开项目中的proguard-rules.pro,将下面的代码复制进去。我的思路是将混淆分为2个主要部分定制化区域。这里边的内容是我们主转载 2016-07-21 16:29:03 · 409 阅读 · 0 评论 -
Android——实现全国省市区地区选择
android的地区选择,这个实在是太常见了,比如淘宝下单后的填写地址里面也有地区选择功能,微信里面也有收货地址,再者一些app的定位选择等等,实现起来也并不是很困难的事,网上也有全国省市区的接口api,调接口的方式更简单,只不过网络请求速度慢了些,写了个demo,在本地的省市区json文件集合实现全国三级地区选择,这里我也主要贴下主要的代码,后面把项目的下载地址分享出来。项目结构: 主要代码,S原创 2016-08-04 14:03:06 · 39638 阅读 · 10 评论 -
快速定位解决Android内存泄漏
1.奠基之石——内存泄漏概述在介绍内存泄漏之前很有必要提及一下Android系统的垃圾回收机制。Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢。这是因为在Java虚拟机中,存在自动内存管理和垃圾清扫机制。概括地说,转载 2016-10-27 09:21:00 · 347 阅读 · 0 评论 -
Android JSBridge的原理与实现
在Android中,JSBridge已经不是什么新鲜的事物了,各家的实现方式也略有差异。大多数人都知道WebView存在一个漏洞,见WebView中接口隐患与手机挂马利用,虽然该漏洞已经在Android 4.2上修复了,即使用@JavascriptInterface代替addJavascriptInterface,但是由于兼容性和安全性问题,基本上我们不会再利用Android系统为我们提供的addJ转载 2016-10-27 09:35:33 · 822 阅读 · 0 评论 -
Android——android与JavaScript交互,告别WebView。
最近工作太忙了,根本没时间写博客,今天在工作上遇到了一个问题,找到了临时解决的办法,这边分享出来,也给自己留个纪念。 android与js交互越来越时尚了,但是我们通常会用webview与其互通。有些时候,项目中根本不需要用到webview,那怎么办呢?今天我就是为了这个问题,去思考,去找答案。自己摸索了一下午,终于有了答案,以下我会把代码贴出来,与大家分享:xml文件:<LinearLayout原创 2016-10-27 17:56:37 · 728 阅读 · 0 评论 -
一次 NotificationListenerService 体验
上个礼拜给别的公司团队多一个自己用的监听通知的app,需求是这样的,收款方展示支付宝二维码,当付款人扫码付款成功之后,收款方在app能看到拦截下来的支付宝信息(收款金额,付款人,语音播报的内容等等),收到拦截消息之后及时刷新页面并把金额提交给后台(不可重复提交,提交失败也记录本地),并发出提示音,数据需保存本地,还有商户区分,app可以增加或修改不同的商户,每个商户对应各自的数据(今日统计,收款列...原创 2018-09-17 11:51:31 · 5439 阅读 · 18 评论 -
Retrofit2+Rxjava2+OKHttp3+RxAndroid 实现网络请求的demo案例
在之前的项目中一直都用着比较老的网络框架,比如volly,okgo,okhttp等等,平时写demo 的时候偶尔也会用到新的框架拿来练练手,这两天写了一个关于retrofit2的案例,分享出来。大牛们恐怕已经写到烂的了,有不足请多多指教。demo开始前,先导入retrofit、rxjava相关的jar project中的build.gradle中添加: // Retrofit库...原创 2018-07-27 15:46:49 · 11756 阅读 · 22 评论 -
TextView加载 html 代码,借助Glide加载jpg or gif 等图片格式
app加载网页数据,可能大部分人都习惯用WebView去实现,简单方便,但是有些时候从api返回的html数据中,是不带html 的css样式的,这时候html 加载出来的文字会显示不整洁,达不到自己想要的效果,甚至文字很小,如果用WebView去显示的话,用户只能去拉伸放大去看,太碍事,大大的影响了用户体验,所以利用TextView去显示html文本,第一:可以自己控制字体大小及颜色,第二:可以...原创 2018-06-27 11:32:01 · 2871 阅读 · 1 评论 -
打造万能视频播放器——Vitamio
很久没有更新博客了,最近短视频的应用那是相当火,我自己手机也装了好几个应用,内涵段子,抖音,快手,等等,前些时候我打开今日头条,特么的新闻也嵌入了娱乐短视频,最近看了比较成熟的视频框架源码——Vitamio。没做过视频类的app,今天写了一个demo,大家一起学习。直入主题,首先需要从vitamio的官网下载源码,下载下来之后应该是名为VitamioBundleStudio-master的原创 2018-01-24 18:19:35 · 787 阅读 · 1 评论 -
Android——自定义带刻度的SeekBar单向拖动条
时间过得真快,才发现好久没来逛逛了。没写博客的这段时间一直在做项目,连续完成了两个大型app,这个过程很享受,这是独立开发的,所以中途有很多很多的问题需要自己一个一个的去解决,现在接近尾声了,发现自己在这个阶段成长了不少,当然需要学习的知识还有很多很多,就让我们大家一起学习吧!今天就分享一个自己在项目中,客户要求的功能,拖动条设置ListView列表中item的金额。这边主要的就是说seekbar这原创 2017-04-21 11:29:53 · 8442 阅读 · 3 评论 -
Android——自定义LinearLayout自动换行,TextView垂直排列。
自定义线性布局在xml中自定换行,比如你在项目中用到LinearLayout,设置水平排列android:orientation=”horizontal”,包裹button或者是TextView,但是不同分辨率的手机,不知道一行能放多少个Button,所以要使用到自动换行的LinearLayout,不多说,贴代码:package com.ds.platform.view;import android原创 2017-04-28 09:44:32 · 6380 阅读 · 0 评论 -
Android——Android实现多级菜单联动操作
感觉好久没有写博客了,这段时间工作很忙,只有晚上才有时间写,demo做出来后马上动手分享给大家了,其实这几天还是很累的,这身体吃不消了【大哭】。。。额!好了,今天是分享一个android实现三级菜单联动效果,这个demo我也折腾了两三个晚上,到了第三级菜单有点复杂,下面带着大家看下代码。项目结构: 为了让大家更有的耐心的阅读, 我先从简单的开始说起,我们先看下demo实现的效果吧!这样可以让大家更原创 2016-05-26 21:42:58 · 32043 阅读 · 19 评论 -
Android 自定义WebView 实现 NestedScrollingChild
有时候我们需要webview实现NestedScrollingChild那样的功能,原生webview不支持,只能通过自定义webview实现NestedScrollingChild接口来实现。由于本人自定义view水平有限,实现不了该功能。好在国外的大神Tobias Rohloff 实现了该功能,在此谢谢他。详细代码如下:/* * Copyright (C) 2016 Tobias Rohlof转载 2016-12-31 15:49:22 · 750 阅读 · 2 评论 -
Android Volley框架使用(三)
Android Volley框架使用(一) Android Volley框架使用(二) 这次主要是自定义请求队列主要代码:package com.example.hfs.volleycustomrequestqueuedemo;import android.content.Context;import android.os.Environment;import com.android.voll转载 2016-07-20 10:16:25 · 294 阅读 · 0 评论 -
Android Volley框架使用(二)
Android Volley框架使用(一)使用 Volley 提供的 ImageLoader 工具类,来实现图片的加载、缓存、 二次采样。在使用Volley来从网络获取图片的时候,我们前面介绍了ImageRequest的使用,而其实Volley还提供了一个NetworkImageView类。利用这个类,我们可以更有效率地去从网络去获取图片,因为它里面帮我们多设置了一个缓存,帮我们自己去处理请求的队列转载 2016-07-20 10:07:35 · 304 阅读 · 0 评论 -
Android——加载自定义html+JavaScript
有些时候想自己写html网页,然后实现在我们的activity中与html相互操作,这种操作很少在app中提现,但是特殊情况下也是可以,哈哈。看以下步骤:首先需要写一个MainActivity的布局,我这里就简单的写一个,代码如下:<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.an原创 2016-06-29 19:23:29 · 762 阅读 · 0 评论 -
Android——接入Bugly跟踪平台
最近新接触到Bugly平台,觉得很不错,分享给大家学习学习,平台地址。我们的项目如果发布了,用户 体验的时候遇到Bug,我们都在该平台查看到,这个效果就是我们需要的,毕竟会浪费掉较长的测试时间,不如直接交给这个平台处理了。接入该sdk非常简单,不需要写任何的代码,只需配置几个地方就可以了,等介绍完这些我会说需要注意的地方。实际上该平台的sdk指南已经说得很清楚了,请参考:Bugly Android原创 2016-06-27 09:40:32 · 2791 阅读 · 1 评论 -
Android——Android 6.0 权限申请机制处理
Android 6.0带来了新的权限管理方式,默认情况下没有任何应用有权限去执行对其他应用、操作系统、用户有不利影响的操作,这涉及到android 6.0的 Security Architecture(安全体系结构),也是Android安全体系结构的核心,记住这句话后面可以对权限管理有个很好的理解。1.因为每一个Android 应用都是在一个进程沙盒中运行的,应用必须明确分享的资源和数据,通过申明需原创 2016-05-18 17:05:18 · 15886 阅读 · 5 评论 -
Android——解析HTML网页
可能之前一些android程序员自己做一个解析html网页的demo时,大部分都会想到利用jsoup或者是HttpURLConnection 解析,我也用过,这边我就举一个简单的例子,就不详细说了。首先布局文件,为了不浪费时间,写一个jsoup与HttpURLConnection通用的layout.xml,见以下:LinearLayout xmlns:android="http://sc原创 2016-05-15 22:13:46 · 1990 阅读 · 0 评论 -
Android——TextView实现真正的跑马灯效果
android 应用有时候需要做一个广告栏,可以做文字闪烁,跑马灯等效果,文字闪烁可以放在线程里面执行,多少秒过后设置文字的TextColor即可,跑马灯效果很少接触,之前写了一个demo,但是实现的效果不是自己想要的,普遍的跑马灯效果直接在layout里面的TextView控件加上如下属性即可实现: android:marqueeRepeatLimit="marquee_forever"a原创 2016-05-16 10:57:58 · 26643 阅读 · 13 评论 -
Android 6.0 利用Fresco解析gif图片
好吧!在上一篇提到了Android 6.0加载gif图片的问题,看了网上别人也遇到过这样的问题,跟不上步伐啊!真是悲催,直到看了Fresco才直到这个鬼东西功能十分强大,可以全面支持Android 6.0,打破不兼容的困扰,大家可以直接去看Fresco的文档 查看文档。 用法很简单,按照文档的要求就可以了。 这里写了一个简单的demo,看看效果:主要代码:package com.lai.test原创 2016-05-13 18:54:13 · 1180 阅读 · 0 评论 -
Android——关于android应用如何更新版本?
今天我给大家分享一个在公司项目开发里面必须要做的事情,应用版本的更新,我们都知道,当我们的项目完成一个版本后,后续需要迭代开发,或者重新新建工程完成更大功能的操作,需要从第一个版本的基础上更新到迭代开发完成后的版本,这就需要掌握软件版本更新的技巧了。下面我给大家分享下吧!其实我们检查应用版本是否需要更新,只要检查我们本地project的versionName与我们服务器上的versionName是否原创 2016-05-28 00:24:07 · 580 阅读 · 0 评论 -
JPush极光推送的原理与简单demo的实现会遇到的问题
JPush极光推送的原理与简单demo的实现会遇到的问题原创 2016-05-04 11:15:23 · 17528 阅读 · 3 评论 -
Android——加载gif图片的问题
最近在做一个项目,遇到一个问题,想在这里请教下大神,如何在android6.0的基础上加载gif图片呢?如果大神看到了,麻烦在评论里面赐教下,也让大伙学习学习,先谢过。如果我找到解决办法了也会分享出来。 下面是我写的一个加载gif图片的源码,直接放在onCreate方法里面就行了,只能支持5.0以前的版本,异步加载也太老了点。说一下需要注意的文件与步骤:new AsyncTask<Vo原创 2016-05-13 11:28:30 · 583 阅读 · 0 评论 -
微信分享功能需要注意的问题
今天移植项目,在微信分享这边遇到一个奇葩的问题,分享回调一直不成功,很纳闷,看了好几遍官方API,觉得并没有什么东西疏漏,换了两三变SDk,最后不经意找出了问题。微信的第三方应用签名apk包,我安装在模拟器上,然后输入自己项目的包名,生成签名。无意间我把这个apk装在自己的手机上,然后又试了一遍自己项目的包名,结果两个相同的包名,在模拟器与真机上生成的签名却不一样,真是日了狗了。找了那么多遍细节,却原创 2016-07-11 22:48:51 · 1349 阅读 · 0 评论 -
Android 数据库(SQLite)的导入导出命令
在网上找了很多有关android数据库的导入导出,都找不到答案,今天问了同事才得知,分享给大家:android不管是真机还是模拟器都可执行一下导入导出操作:cmd打开命令窗口:导入:adb push C:\Users\lai\Desktop\sto.db sdcard/ms/aa注意空格,从PC的db文件导入android手机上(不分模拟器和真机),那么第一个路径肯定是PC的桌面路径了,第二个则是手原创 2016-06-15 17:40:20 · 2757 阅读 · 0 评论 -
Android中使用Handler造成内存泄露的分析和解决
Java使用有向图机制,通过GC自动检查内存中的对象(什么时候检查由虚拟机决定),如果GC发现一个或一组对象为不可到达状态,则将该对象从内存中回收。也就是说,一个对象不被任何引用所指向,则该对象会在被GC发现的时候被回收;另外,如果一组对象中只包含互相的引用,而没有来自它们外部的引用(例如有两个对象A和B互相持有引用,但没有任何外部对象持有指向A或B的引用),这仍然属于不可到达,同样会被GC回收。A转载 2016-07-01 14:52:23 · 256 阅读 · 0 评论 -
Android Volley框架使用(一)
Volley简介2013年Google I/O大会上推出了一个新的网络通信框架——Volley。Volley可是说是把AsyncHttpClient和Universal-Image-Loader的优点集于了一身,既可以像AsyncHttpClient一样非常简单地进行HTTP通信,也可以像Universal-Image-Loader一样轻松加载网络上的图片。 有如下优点: Volley优点:转载 2016-07-19 18:38:02 · 367 阅读 · 0 评论 -
Android RecyclerView使用详解
前言RecyclerView是谷歌V7包下新增的控件,用来替代ListView的使用,在RecyclerView标准化了ViewHolder类似于ListView中convertView用来做视图缓.先来说说RecyclerView的有点就是,他可以通过设置LayoutManager来快速实现listview、gridview、瀑布流的效果,而且还可以设置横向和纵向显示,添加动画效果也非常简单(自带转载 2016-07-19 18:26:01 · 459 阅读 · 0 评论 -
Android——APP性能优化总结
Android应用性能优化基础知识。布局优化避免OverDraw过渡绘制优化布局层级避免嵌套过多无用布局当我们在画布局的时候,如果能实现相同的功能,优先考虑相对布局,然后在考虑别的布局,不要用绝对布局。使用标签把复杂的界面需要抽取出来使用标签,因为它在优化UI结构时起到很重要的作用。目的是通过删减多余或者额外的层级,从而优化整个Android Layout的结构。核心功能就是减原创 2016-06-22 14:42:52 · 430 阅读 · 0 评论 -
Android——Service基础机制。
Service是一个应用组件表现为应用期望执行长时间运行操作并且和用户没有交互或为其它应用提供功能。每个service类必须在它的包AndroidManifest.xml文件中有相应的节点声明。可以通过调用Context.startService() 和 Context.bindService()开启Service。带着问题去学习:注册Service需要注意什么什么是Service以及描述下它的原创 2016-06-22 14:07:31 · 441 阅读 · 0 评论