
Android
文章平均质量分 72
林克在思考
一个喜欢折腾技术的开发者
展开
-
一场setTag引发的血案与思考
今天讲一个Android中由于setTag使用不慎引发的血案以及一些思考。故事背景如上图,app这个Module通过远程依赖aar的方式依赖了IM这个Module。在app这个Module中有如下的代码:View view = findViewById(R.id.view);view.setTag(R.id.root_position);这个 root_position 是声明在...原创 2019-09-12 01:26:34 · 1237 阅读 · 0 评论 -
《第一行代码》综合案例改进版
经过一端相对较长的时间,终于将郭大神的《第一行代码》看完了,亲自实践了书中所有的大小案例,以及git的使用,当然还补充学习了一些和书中内容相关的扩展知识,以及廖雪峰老师官网的git教程,关于《第一行代码》的学习也都在博客上有所记录,并且对其中的有些已经过时的方法也写了一点自己的看法,最后就是实践书最后面的小例子《酷欧天气》。原创 2016-09-29 15:51:50 · 1390 阅读 · 0 评论 -
Android开发之ADB命令使用技巧
学习Android的小伙伴们一定都听过ADB吧,如果没有听过也没有关系,下面我将介绍ADB及一些ADB命令的使用技巧.ADB的全称是Android Debug Bridge,直接翻译过来就是Android调试桥,它就像一个纽带,可以让我们在电脑上操作手机,我们可以在电脑上对其发送一些指令来调试它.原创 2016-11-23 17:04:00 · 2277 阅读 · 0 评论 -
Android中的广播机制(二)----- 发送广播
这一篇中我们将介绍发送标准广播,有序广播和本地广播的使用。原创 2016-06-24 17:27:19 · 1009 阅读 · 0 评论 -
Android五子棋小游戏之UI篇
最近一直在学习Android自定义View方面的知识,正好看到一个讲解制作五子棋小游戏的案例,遂学习一番,记录下学习过程,帮助那些有需要的人。首先放上效果图: 下面我将带领大家一步步完成这个五子棋小游戏。原创 2016-11-18 21:09:04 · 3666 阅读 · 5 评论 -
Genymotion模拟器拖入文件报错An error occured while deploying the file
前段时间重装了Genymotion模拟器,现在因为要临时在上面测试一个小程序,但程序里面正好用到了NDK,所以必须要在Genymotion里面安装一个支持ARM的CPU架构的压缩包。 不懂怎么安装Genymotion模拟器的小伙伴可以看这篇博客Genymotion模拟器的安装 不懂怎么在Genymotion模拟器上跑使用到NDK的程序的小伙伴可以看这篇博客Genymotion模拟器运行ARM架构原创 2016-10-07 10:32:00 · 12907 阅读 · 3 评论 -
Android自定义View之仿QQ侧滑菜单实现
最近,由于正在做的一个应用中要用到侧滑菜单,所以通过查资料看视频,学习了一下自定义View,实现一个类似于QQ的侧滑菜单,顺便还将其封装为自定义组件,可以实现类似QQ的侧滑菜单和抽屉式侧滑菜单两种菜单。下面先放上效果图:原创 2016-10-28 17:23:40 · 4158 阅读 · 3 评论 -
TabLayout+ViewPager+Fragment实现顶部或底部导航栏
以前看慕课网的教程,写过一个微信Tab选项卡切换的例子,使用的是ViewPager+Fragment来实现的,说实话,当时为了实现一些效果,还是写了蛮多的代码,但是,今天介绍的TabLayout+ViewPager+Fragment实现导航栏可以使用很少的代码实现很棒的效果。原创 2016-10-12 19:01:57 · 5080 阅读 · 2 评论 -
Android中的服务Service的使用
服务是Android中实现程序后台运行的解决方案,服务的运行不依赖与任何用户界面,所以它非常适合于去执行那些不需要和用户交互且需要长期运行的任务。但是我们要注意一点,服务不是运行在一个独立的进程中,而是依赖于创建服务的应用程序进程,当某个应用程序被杀死时,依赖此应用程序创建的服务也会停止运行。原创 2016-09-06 22:06:48 · 838 阅读 · 0 评论 -
百度LSS视频直播Android版Demo详细注释
最近准备研究一下视频直播,就找了一下一些提供流媒体服务的服务商,虽然我对百度一直有点看法,但流媒体服务器这一点,平心而论,还可以,虽然对认证的个人开发者有100G的流量限制,而且对新开通的用户还赠送10G流量,这基本就够我研究用了,这点真心点赞。原创 2016-09-23 22:48:20 · 1733 阅读 · 0 评论 -
Android异步处理之AsyncTask
为了让我们在子线程中更简单地更新UI,Android给我们封装了一个抽象类AsyncTask,我们在使用时可以继承这个类并且还可以为其制定三个泛型参数,下面是这三 1、Params —— 在执行AsyncTask的实例时需要传入的参数,可用于在后台任务中使用。2、Progress —— 在执行后台任务时,如果需要显示当前任务执行的进度,可以使用这里指定的泛型作为进度单位。原创 2016-09-06 20:20:05 · 496 阅读 · 0 评论 -
Android播放音频和视频
今天的博客记录一下在Android设备上播放简单的音频和视频原创 2016-08-23 17:10:00 · 1186 阅读 · 0 评论 -
Android网络请求 ------ Volley的使用
Volley是Google官方的网络异步请求库,最大的特点是简单高效,多并发。但Volley不适合数据的上传和下载。原创 2016-08-31 19:08:15 · 2043 阅读 · 0 评论 -
Android拍照或从图库选择图片并裁剪
今天看《第一行代码》上面关于拍照和从相册选取图片那一部分,发现始终出不来效果,所以搜索其他资料学习一下相关知识,写一个简单的Demo。原创 2016-08-22 23:59:13 · 4652 阅读 · 5 评论 -
Android接收和发送短信
每一部手机都具有短信接收和发送功能,下面我们通过代码来实现接收和发送短信功能。一、接收短信1、创建内部广播接收器类,接收系统发出的短信广播 2、从获得的内容中解析出短信发送者和短信内容 3、在Activity中注册广播 4、添加接收短信权限 下面放上具体的代码activity_main.xml文件用于显示短信发送者号码和显示短信内容<?xml version="1.0" encodin原创 2016-08-21 22:31:20 · 2193 阅读 · 0 评论 -
Android6.0新应用权限管理机制详解
随着Android系统的不断升级,Android系统在系统安全这一块也有了一定的提升,但这个变化也使得我们以前可以正常运行的应用受到了一定的影响,我们必须对其做一定的适配才能保证我们的应用正常运行,下面我们就来一起学习一下Android6.0的权限管理机制。原创 2017-01-20 17:45:05 · 1309 阅读 · 0 评论 -
Android中的SurfaceView详解
Android中提供了View进行绘图处理,View可以满足大部分的绘图需求,但是有时候,View却显得力不从心,所以Android提供了SurfaceView给Android开发者,以满足更多的绘图需求。下面就让我们一起来了解一下SurfaceView。原创 2017-02-11 21:44:54 · 1461 阅读 · 0 评论 -
Android自定义View之音频条形图
最近在学习Android自定义View,看到一个自定义音频条形图的例子,遂学习了一下并且在此基础上扩展了一点,在此记录一下,来帮助到需要的人。先放上一张效果图,看着还不错吧,接下来就开始一步步实现这个小例子。原创 2017-01-25 13:33:12 · 1508 阅读 · 0 评论 -
Kotlin系列之枚举类
今天我们一起学习Kotlin中的枚举类。原创 2018-01-09 22:19:33 · 601 阅读 · 0 评论 -
Kotlin系列之目录和包
今天我们学习Kotlin的目录和包。前面我们了解了Kotlin的类和属性,但是我们都只是写了很少的代码,当代码量增加时,我们就需要一定的方法来组织和分类存放我们的代码,以便于整个项目的维护,如果我们将所有的代码都写在一个kt文件中是不行的。一旦我们开始写出多个kt文件,就涉及到多个文件和类之间的互相调用,这就是我们这一节讨论的Kotlin的目录和包。Java中的目录和包我们先说一下J原创 2018-01-08 22:32:10 · 2179 阅读 · 4 评论 -
Kotlin系列之类和属性
这一节我们学习Kotlin的类和属性。学习过Java的小伙伴对面向对象应该不会陌生吧。虽然说Kotlin支持直接在文件中写函数,但是它同样支持面向对象,下面就来了解一下Kotlin的类和属性相关的知识。Kotlin的类Kotlin中类的声明也是使用class关键字,下面我们通过对你Java代码和Kotlin代码来学习。Java代码public class People原创 2018-01-07 21:50:33 · 532 阅读 · 0 评论 -
Kotlin系列之变量和函数
这一节我们将学习Kotlin的变量和函数。Kotlin的变量1 . Kotlin的变量声明格式 Kotlin中的变量声明以关键字开始,在大部分情况下可以省略类型,这里我们同样将Kotlin与Java进行对比Kotlin变量声明格式如下://关键字 变量名:类型(可省略)val result: Int = 24Java变量声明格式如下://类型 变量名原创 2018-01-06 23:04:28 · 629 阅读 · 0 评论 -
Kotlin系列之when关键字
今天,我们来学习一下Kotlin的when关键字。when关键字是一个有返回值的表达式,也就是它可以返回一个值。下面说说它的各种用法。when处理枚举类在Java中我们一般使用switch来处理枚举类,比如我想对每一种枚举值返回一个结果,就可以使用switch来处理。这种处理的需求在Kotlin中使用when关键字来完成。原创 2018-01-11 23:00:48 · 7750 阅读 · 0 评论 -
Android扫描文件并统计各类文件数目
最近在模仿小米的文件管理器写一个自己的文件管理器,其中有一个功能是全盘扫描文件并显示每类文件的数目。刚开始使用单一线程,扫描速度简直惨不忍睹,换成多线程扫描以后,速度有较明显的提升,便封装了一个工具类,分享出来。原创 2017-12-16 22:10:45 · 6999 阅读 · 5 评论 -
Android简单实现一个颜色渐变的ProgressBar
今天看一个教程,看到一个颜色渐变的ProgressBar,觉得有点意思,所以记录一番。原创 2017-11-29 20:01:13 · 1330 阅读 · 0 评论 -
Android常见基类封装
前段时间一直在忙找工作的事,好久没有写博客了,最近在学习一个实战项目,讲到了基类的封装,故在此记录一下。主要涉及到Activity,Fragment和RecyclerView的适配器的封装。原创 2017-10-11 14:36:15 · 2483 阅读 · 2 评论 -
关于AIDL中的in、out和inout修饰符
在Android中的IPC方式中有一种方式为AIDL,当我们在使用AIDL时需要根据不同的数据传输场景去选择不同的修饰符,只要涉及到in、out和inout修饰符。注:这个知识点在面试CVTE时遇到了,当时只说了in和out修饰符,特此在这里总结一下。原创 2017-09-23 17:10:25 · 1450 阅读 · 0 评论 -
AndroidStudio中的NDK开发初探
前段时间由于做比赛的事,一直都没时间写博客,现在终于可以补上一篇了,一直想学习一点NDK开发的知识,但是迟迟没有动手,正好有一个NDK相关的项目机会,便查阅了一些资料,遂将学习的一些心得方法记录于此。原创 2017-07-20 17:40:47 · 10142 阅读 · 15 评论 -
OkHttp使用详解
今天学习了一下OkHttp,在这里做个总结,希望可以帮助到有需要的人,好了,废话不多说,进入正题。原创 2016-12-18 18:04:33 · 2920 阅读 · 2 评论 -
Android屏幕相关知识总结
由于Android系统的开放性,许多手机厂商都专注于制造自己的品牌,造成Android的手机屏幕无论是大小还是分辨率都是五花八门,这就造成了我们在Android中进行绘图时难以保证绘图在不同手机上的视觉一致性,通过下面的知识总结就可以很方便地帮助我们解决这些问题。原创 2017-02-03 18:06:47 · 974 阅读 · 0 评论 -
Android中的ViewDragHelper
我们在Android中经常会遇到需要滑动的场合,关于在Android如何实现滑动可以看我的这篇博客Android中实现滑动的七种方法,这篇博客我们会详细介绍一下Android中的ViewDragHelper类,这个类可以实现各种滑动拖放需求,可谓是滑动解决方案中的终极绝招,下面就让我们一起来学习一下。原创 2017-02-02 21:25:51 · 741 阅读 · 0 评论 -
Android中实现滑动的七种方法
在Android中想要实现实现滑动有很多方法,这篇博客将提供一些实现滑动的思路,希望可以帮助到有需要的人。一、Android坐标体系 在讲解滑动之前,我们有必要简单提一下Android的坐标体系,因为滑动的实质就是坐标的不断改变,所以我们先来了解一下Android坐标系和视图坐标系两个概念。直接放上两张图片吧,一目了然。 从上面的两张图可以看出,Android坐标系的坐标原点位于屏幕的左上角原创 2017-02-02 12:51:19 · 1642 阅读 · 0 评论 -
Android中WebView使用详解
WebView是Android中一个用于展示网页的控件,我们借助于这个控件可以简单的实现在Android应用中展示自己的网页。同时还能实现一些高级的功能。原创 2016-08-28 21:53:15 · 1137 阅读 · 0 评论 -
Android传感器简单介绍
Android手机中存在好多种传感器,Android系统提供了接口可以将传感器的数据传送给我们,我们可以用获取到的数据做很多有趣的事,接下来我们就来学习一下最常用的三种传感器,光照传感器、加速度传感器和 方向传感器。 传感器的使用方法几乎都是差不多的,我们只需要学会了一种使用方法,那就基本可以去按同样的方式去使用其他的传感器。原创 2016-09-11 11:31:31 · 949 阅读 · 0 评论 -
一个Android项目中各目录介绍
对于一个Android项目,一般有如下几个文件夹:src目录 该目录是放我们所有的java代码的地方,里面都是一些.java文件 gen目录 该目录里面的内容都是自动生成的,主要有一个R.java文件,里面存储的是你在项目中添加的资源所对应的id,千万不要手动去修改 assets目录 该目录主要放置一些随程序一起打包的文件,在 程序运行时可以动态读取里面的内容,或者是程序中用到了W原创 2016-06-15 10:33:11 · 3758 阅读 · 0 评论 -
Android组件----内容提供器Content Provider
内容提供器(Content Provider)主要用于在不同的应用程序之间共享数据,虽然Android提供的文件存储和SharePreferences都可以设置全局读写模式共享数据,但由于安全性问题,已经在Android4.2中被废弃。内容提供器将提供一种安全的数据共享方式。当一个程序通过内容提供器提供了韦布访问接口,其他任何程序都可以通过该接口来对这部分数据进行访问,例如:联系人数据,短信数据。原创 2016-07-11 15:03:35 · 1931 阅读 · 0 评论 -
Genymotion模拟器出现Unable to create virtual device Fail to create SD card解决方法
重装了电脑系统,今天装Genymotion模拟器时,在线下载完镜像,点击Next,出现报错Unable to create virtual device Fail to create SD card,无法创建虚拟设备,这以前没有遇到过啊,Google了半天也没有答案。只好自己找问题。 第一步尝试将镜像导入VirtualBox,在VirtualBox中选择 管理—>导入虚拟电脑。结果,竟然连导入都原创 2016-07-11 10:56:45 · 6383 阅读 · 6 评论 -
百度地图导航Android6.0初始化失败解决方法
自己开发的一个应用中用到了百度地图导航,刚开始开发是使用Android4.4做测试,一切正常,有一天用Android6.0手机跑了一下,提示导航初始化失败。赶紧下载官方的Demo看了一波,Android6.0可以啊,为什么就我的项目不可以。最终发现原来是build.gradle中有差异,在app的build.gradle文件中defaultConfig中的targetSdkVersion是18,如下原创 2016-06-13 18:24:42 · 3077 阅读 · 2 评论 -
Android中使用HttpConnection发送中文到服务器端乱码解决办法
最近在写一个简单地案例,是将二维码扫描的信息发送到服务器端,并存储到数据库。以前的测试都是用英文,没出什么问题,今天试了一下中文,却发现传到服务器端的全是乱码。 解决步骤: 1、服务器端是用PHP来写,所以在保证文件保存为utf-8格式的前提下,在加上头声明:header("Content-type: text/html; charset=utf-8"); 可乱码依旧,将服务器端获取到的乱码拿原创 2016-05-22 21:40:41 · 2628 阅读 · 0 评论 -
Android实现简单地APP欢迎页面
现在的APP一般都会在应用启动时有一个欢迎界面,这种欢迎界面一般有两种情况,一种用来在应用启动时在后台检测网络状态,亦或者是加载网络数据等一些耗时操作,比如QQ、微信。还有一种是在启动页方式自己的品牌标志,一般为Logo,例如淘宝。今天我将通过简单地代码来实现这两种效果。 1、在后台加载网络数据,运行一些耗时的任务,代码如下: WelcomeActivity.java文件代码public c原创 2016-06-09 17:34:45 · 2758 阅读 · 2 评论