android开发
文章平均质量分 77
范红康
走一条未走完的路……
展开
-
不怕面试再问 Activity,一次彻底地梳理(原理+生命周期)
作为 Android 四大组件之一的 Activity 我的印象中就是用来展示界面的,在很长一段时间里,只要提及界面、UI、View 我脑子里第一个闪过的就是 Activity ,我的理解中一直认为界面、UI、View == Activity。其实呢非也!如果你曾经和我一样,说起 Actvity 就是聊他的生命周期,各个方法背的滚瓜烂熟,但也仅限于此而已并没有真正的去认识 Activity 的话,那么请跟我一起从【 Activity 的组成】、【启动】、【显示】来重新认识一下Activity一 Ac..转载 2021-04-22 15:50:31 · 956 阅读 · 1 评论 -
动画库 Lottie 的使用
本文主要介绍动画开源库 Lottie 在 Android 中的使用。前言在日常APP开发中,为了提升用户感官舒适度等原因,我们会在APP中加入适量动画。而传统手写动画方式往往存在诸多问题: 动画复杂而实现困难 图片素材占用体积过大 不同Native平台都需各自实现,开发成本高 不同Native平台实现的最终效果不一致 后期视觉联调差异化大...转载 2020-04-24 19:22:31 · 2736 阅读 · 0 评论 -
LiveData && ViewModel 使用详解
什么是 LiveDataLiveData 是一个可观测的数据持有类,但是不同于通常的被观察者,LiveData 具有生命周期感知能力。通俗点说,LiveData 就是具有 “Live” 能力的 “Data” 持有类。当它所持有的数据发生改变的时候,并且 Lifecycle 对象(比如 Activity 或者 Fragment 等)处于活跃状态(STARTED 或者 RESUMED),LiveD...转载 2020-03-13 14:11:26 · 1281 阅读 · 0 评论 -
android CMake开发
环境需求要进行jni开发,AS需要以下环境:方式一、在工程创建的时候添加首先使用AS(3.0)新建一个JniTest工程在创建工程的过程中就有是否支持jni调用的选项当你把这个选项勾选上后,你会发现项目的App模块下自动就把cmake相关的内容配置好了,我们来看看与无jni调用的工程有什么不同。首先,app目录下多了CMakeLists.txt文件,内容如下:# F...原创 2019-11-13 15:08:44 · 215 阅读 · 0 评论 -
View及ViewGroup的事件分发及传递(一)
写这篇博客的缘由不是因为在网上看到了关于Android事件分发的文章,而是一方面因为面试中被问到了,一直在使用却没有真正了解过其原理,另一方面是因为想更多更深入的学习一下。因此在网上找了一些文章,觉得写得都挺好的,自己也简单的运行了一下小Demo,总觉得看完了还是有点不清晰,就想自己梳理一下,结合大神分享的,把自己微不足道的理解也加进去,希望能更深入的理解,加深印象。就我个人的实践和理转载 2016-01-31 14:08:14 · 259 阅读 · 0 评论 -
videoview全屏播放
VideoView与视频比例缩放:以前在论坛上也看到有人问过如何实现视频按比例缩放的问题。的确,如果仅仅使用VideoView可能达不到我们想要达到的效果。这就需要我们对VideoView做一些改动,简单的说就是另外写一个类似VideoView的类出来(庆幸Android是开源的)。我们可以很方便的获得VideoView的源代码,最简单的方法是直接在GoogleCodeSearch上找原创 2016-02-23 13:41:56 · 417 阅读 · 0 评论 -
android studio gradle版本太低问题解决方案
1.下载新版gradle ,网站http://gradle.org/gradle-download/2.替换E:\android-studio\android-studio\gradle(我的gradle路径);3.更改工程gradle:classpath 'com.android.tools.build:gradle:2.0.+'修改android-studio中gradle原创 2016-02-24 11:12:16 · 6187 阅读 · 0 评论 -
androidstudio常见问题
Android Studio是一套面世不久的IDE(即集成开发环境),免费向谷歌及Android的开发人员发放。Android Studio以IntelliJ IDEA为基础(后者同样是一套相当出色的Android开发环境),旨在取代Eclipse和ADT(Android开发者工具)为开发者提供更好的开发工具。既然强大的Android Studio来了,有什么理由不去用呢?转载 2016-02-24 14:36:16 · 262 阅读 · 0 评论 -
Git使用教程之本地仓库的基本操作
Git是什么?一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,转载 2016-02-24 16:48:13 · 604 阅读 · 0 评论 -
mysql cmd常用命令
将mysql目录下bin目录中的mysql.exe放到C:\WINDOWS下,可以执行以下命令 连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样) 断开:exit (回车) 创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\" 修改密码:mysql转载 2016-01-29 10:34:35 · 262 阅读 · 0 评论 -
Android 5.0学习之ListView升级版RecyclerView
前言大家都知道ListView在我们开发中很常用,Android5.0的到来,它给我们带来了一个替代ListView的新的控件,也可以说是ListView的升级版,那就是RecyclerView。接下来就让我们看一下,它们的作用的用法吧~!RecyclerViewRecyclerView控件是比ListView更先进、灵活的版本。该R转载 2016-02-26 11:09:32 · 410 阅读 · 0 评论 -
Android 自定义控件开发入门(一)
那么怎样来创建一个新的控件呢? 这得看需求是怎样的了。 1.需要在原生控件的基本功能上进行扩展,这个时候你只需要继承并对控件进行扩展。通过重写它的事件,onDraw ,但是始终都保持都父类方法的调用。如从已有的高级控件上继承,例如继承一个TextView。 2.需要几个控件的功能的加和,这个时候要把控件组合起来,就是通过合并几个控件来生成一个新控件原创 2016-02-26 15:14:04 · 516 阅读 · 0 评论 -
android shape的使用
http://schemas.android.com/apk/res/android" > android:radius="9dp" android:topLeftRadius="2dp" android:topRightRadius="2dp" android:bottomLe原创 2016-02-23 11:08:28 · 199 阅读 · 0 评论 -
Win7上Git安装及配置过程
一、安装说明1、Git在windows平台上安装说明。 Git 是 Linux Torvalds为了帮助管理 Linux内核开发而开发的一个开放源码的版本控制软件。目前Git已经可以在windows下使用,主要方法有二:msysgit和Cygwin。Cygwin和Linux使用方法类似,Windows版本的Git提供了友好的GUI(图形界面),安装后很快可原创 2016-02-20 11:58:50 · 1393 阅读 · 0 评论 -
单例模式的实现
单例模式的实现 /** * * 单例模式的实现:饿汉式,线程安全 但效率比较低 */ public class SingletonTest { private SingletonTest() { } private static final SingletonTest instance = new SingletonTes原创 2016-02-19 09:54:02 · 231 阅读 · 0 评论 -
View及ViewGroup的事件分发及传递(二)
在上一篇文章中说到的是关于View的事件分发机制,这篇文章就谈一谈关于ViewGroup的事件分发机制:关于ViewGroup的事件分发机制,一般情况下,和View的情况是大致一样的,只不过由于ViewGroup是一组View的集合,所以,其中涉及到了子View,事件分发相对于View就多了一层,会稍微复杂一些。那么下面就看看大神是如何分析的吧:原文详见:Android事件分发机制转载 2016-01-31 14:09:32 · 276 阅读 · 0 评论 -
JNI的native代码中打印日志到eclipse的logcat中
1 添加ndk对log支持若需要添加ndk对log的支持,只需要通过以下2步即可实现。1.1 修改Android.mk如生成的库文件是“.so文件”,则在Android.mk中添加如下内容:LOCAL_LDLIBS:=-L$(SYSROOT)/usr/lib -llog如生成的库文件是“.a文件”,则在Android.mk中添加如下内容:LOCAL_LDLIBS转载 2016-03-01 17:41:20 · 303 阅读 · 0 评论 -
GitHub 优秀的 Android 开源项目
http://www.cnblogs.com/hawkon/p/3593709.html转载 2016-02-01 15:44:07 · 199 阅读 · 0 评论 -
在eclipse中导入工程后@Override报错
在eclipse中导入工程后@Overide报错到入工程后,所有的@Override都报如下错误:Multiple markers at this line - The method getCount() of type new BaseAdapter(){转载 2016-02-02 09:53:03 · 448 阅读 · 0 评论 -
android中button点击频率控制
版权声明:本文为博主原创文章,未经博主允许不得转载。 //写一个类 public class Utils { private static long lastClickTime; public static转载 2016-02-16 11:15:57 · 289 阅读 · 0 评论 -
与splash详解相关的
Android应用的自动更新模块软件的自动更新一般都与Splash界面绑定在一起, 由于需要维护的软件界面很复杂, 一个Activity中嵌入ViewPager, 并且逻辑比较复杂, 索性重新写一个Activity, 现在的软件都很流行使用Splash界面, 正好与自动更新配套在一起; 在这个自动更新Splash中, 使用到了 动画设置 ,SharedPerfere原创 2016-02-16 14:50:08 · 620 阅读 · 0 评论 -
Android中Video的三种播放方式的实现
在Android中,我们有三种方式来实现视频的播放。 1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。 2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。 3、使用MediaPlayer类和SurfaceView来实现。这种方式最灵活,也原创 2016-02-18 15:11:05 · 2347 阅读 · 0 评论 -
android 判断横竖屏的方法
public boolean isScreenChange() {Configuration mConfiguration = this.getResources().getConfiguration(); //获取设置的配置信息int ori = mConfiguration.orientation ; //获取屏幕方向if(ori == mConfiguration原创 2016-02-18 16:02:30 · 787 阅读 · 0 评论 -
Eclipse编译运行Native代码步骤详解
Eclipse编译运行Native代码步骤详解标签: android jni层 android jni步骤 android jni接口 转自: http://blog.csdn.net/dengshengjin2234/article/details/10046809最近一段时间在做native层的开发,把一些经验和技巧记录下来,希望对大家有帮助。转载 2016-02-29 09:45:01 · 649 阅读 · 0 评论 -
Android OkHttp框架解析
Okhttp是由Sqare公司开发的开源网络访问库,是目前比较火的网络框架, 它处理了很多网络疑难杂症:会从很多常用的连接问题中自动恢复。如果你的服务器配置了多个IP地址,当第一个IP连接失败的时候,OkHttp会自动尝试下一个IP,此外OkHttp还处理了代理服务器问题和SSL握手失败问题。 原链接:http://blog.csdn.net/huaxun66/article/details/52转载 2018-01-19 16:29:17 · 759 阅读 · 0 评论 -
关于Activity onNewIntent方法的调用时机
在官方API上的说明如下:http://developer.android.com/reference/android/app/Activity.html#onNewIntent(android.content.Intent):protected void onNewIntent (Intent intent)Since: API Level 1This is called for activit...转载 2018-03-19 18:15:28 · 525 阅读 · 0 评论 -
Android开发必备的Gradle知识
我们知道Android studio在发布之初就使用了gradle来构建和管理Android项目,所以很多人在开发Android应用的过程中或多或少都和它打过交道,今天就给大家分享下我对gradle的一些理解,以及在Android开发中使用gradle的一些经验。项目自动化构建工具的发展最早在开发的过程中是没有项目自动化构建这个东西的,每次编译项目的时候都是在命令行下对每个源文件执行编译命...转载 2019-03-17 19:03:34 · 229 阅读 · 0 评论 -
手把手教你AndroidStudio多渠道打包
最近不断有朋友向我咨询AndroidStudio多渠道的打包方法,今天整理一下之前积累的打包套路,写一篇文章,手把手的教给大家。 说到多渠道,这里不得不提一下友盟统计,友盟统计是大家日常开发中常用的渠道统计工具,而我们的打包方法就是基于友盟统计实施的。按照友盟官方文档说明,渠道信息通常需要在AndroidManifest.xml中配置如下值:<meta-data a...转载 2019-03-26 11:37:04 · 260 阅读 · 0 评论 -
Android流量统计TrafficStats类
对于Android流量统计来说在2.2版中新加入了TrafficStats类可以轻松获取,其实本身TrafficStats类也是读取Linux提供的文件对象系统类型的文本进行解析。android.net.TrafficStats类中,提供了多种静态方法,可以直接调用获取,返回类型均为 long型,如果返回等于-1代表 UNSUPPORTED 当前设备不支持统计。 1 2 ...转载 2019-03-26 14:46:47 · 1018 阅读 · 0 评论 -
git 切换成远程分支
git clone只能clone远程库的master分支,无法clone所有分支,解决办法如下:1. 找一个干净目录,假设是git_work2. cd git_work3. git clonehttp://myrepo.xxx.com/project/.git,这样在git_work目录下得到一个project子目录4. cd project5. git branch -a,列出所有...转载 2019-04-12 14:15:55 · 3198 阅读 · 0 评论 -
Android.mk 文件语法详解
0. Android.mk简介:Android.mk文件用来告知NDK Build 系统关于Source的信息。 Android.mk将是GNU Makefile的一部分,且将被Build System解析一次或多次。所以,请尽量少的在Android.mk中声明变量,也不要假定任何东西不会在解析过程中定义。Android.mk文件语法允许我们将Source打包成一个"modules"...转载 2019-04-23 09:46:56 · 406 阅读 · 0 评论 -
图解四种启动模式 及 实际应用场景解说
在一个项目中会包括着多个Activity,系统中使用任务栈来存储创建的Activity实例,任务栈是一种“后进先出”的栈结构。举个栗子,若我们多次启动同一个Activity。系统会创建多个实例依次放入任务栈中。当按back键返回时,每按一次,一个Activity出栈,直到栈空为止。当栈中无不论什么Activity。系统就会回收此任务栈。上面这个样例中的Activity并没有设置启动模式,你会发...转载 2019-04-19 09:06:56 · 2032 阅读 · 0 评论 -
Android自定义View全解
目录目录.png1. 自定义View基础1.1 分类自定义View的实现方式有以下几种类型 定义 自定义组合控件 多个控件组合成为一个新的控件,方便多处复用 继承系统View控件 继承自TextView等系统控件,在系统控件的基础功能上进行扩展 继承View 不复用系统控件逻辑,继承View进行功能定义 继承系统ViewGroup ...转载 2019-07-12 18:46:57 · 170 阅读 · 0 评论 -
activity在屏幕旋转时的生命周期
************横竖屏切换不配置*************07-13 15:30:42.459 3220-3220/fhk.com.mytest E/lifeCycle: onCreate07-13 15:30:42.461 3220-3220/fhk.com.mytest E/lifeCycle: onStart07-13 15:30:42.463 3220-3220/fhk.co...原创 2019-07-13 15:58:31 · 682 阅读 · 0 评论 -
Android状态栏
Android 4.4 之前,Android 的状态栏是黑色背景,无法修改。Android 4.4 推出了透明状态栏的效果。Android 5.0 提供了方法可以直接修改状态栏的颜色。目录:隐藏 ActionBar 隐藏状态栏 半透明效果的状态栏(5.0 是半透明,4.4 是渐变) 透明效果状态栏 (1) 状态栏与桌面背景颜色相同 (2)状态栏与 Toolbar 背景颜色...转载 2019-02-28 10:09:49 · 381 阅读 · 0 评论 -
解决小米手机缩放窗口问题
使用机型 小米手机6 版本号 V8.2.23.0.NCACNEC 复现概率 100% ROM版本 稳定版 问题描述 权限管理里面只有 悬浮窗设置,按照以前一些人说法先允许后拒绝就好了,但是这样设置后...原创 2019-01-15 17:56:00 · 4437 阅读 · 0 评论 -
adapter调用notifyDataSetChanged刷新没有起作用的原因
listview列表中的数据更新后刷新是使用listview的基础,但是有时候在更新数据之后使用notifyDataSetChanged方法刷新页面的时候就出现了没反应的现象。原因是adapter会监听一个数据源,这个数据源在一开始的时候会指向一个内存,当指向此内存的数据源发生变化的时候adapter调用notifyDataSetChanged方法就可以进行刷新,但是问题就出在这里数据源往往会被移...转载 2018-05-29 10:53:39 · 3003 阅读 · 0 评论 -
JNI函数签名表
2.4.3 JNI方法签名规则有了数据类型之间的对应关系,JNI就可以正确识别并转换Java类型。那JNI又是如何识别Java的方法呢?Java支持方法重载,仅靠函数名是无法唯一确定一个方法的。于是JNI提供了一套签名规则,用一个字符串来唯一确定一个方法。其规则如下:(参数1类型签名参数2类型签名……参数n类型签名)返回值类型签名以上签名字符串之间均没有空格。类型签名又有一些规...转载 2018-09-12 15:39:16 · 1041 阅读 · 0 评论 -
android GLSurfaceView渲染模式
GLSurfaceView的渲染模式。OpenGl ES关于渲染方式有以下两种:RENDERMODE_CONTINUOUSLY和RENDERMODE_WHEN_DIRTY。默认渲染方式为RENDERMODE_CONTINUOUSLY,当设置为RENDERMODE_CONTINUOUSLY时渲染器会不停地渲染场景,当设置为RENDERMODE_WHEN_DIRTY时只有在创建和调用requ...转载 2018-12-29 15:53:34 · 1409 阅读 · 0 评论 -
Android GLSurfaceView.Renderer 类 onDrawFrame 方法的刷新机制
这玩意只要不是设置渲染模式是when dirty,就会一直调用这个函数,我之前一直以为是采集到数据才会调用http://blog.waterlin.org/articles/the-principle-of-glsurfaceview-renderer-ondrawframe.html 在 Android 中,要实现动画效果,要么通过循环调用 canvas.draw 系统方法,要么通过...转载 2019-01-17 18:23:47 · 4779 阅读 · 0 评论