Android开发( 右侧选择分类 )
android01

Android源码解析(八)-- Zygote进程启动流程

大家都知道android系统的Zygote进程是所有的android进程的父进程,包括SystemServer和各种应用进程都是通过Zygote进程fork出来的。Zygote(孵化)进程相当于是android系统的根进程,后面所有的进程都是通过这个进程fork出来的,而Zygote进程则是通过linux系统的init进程启动的,也就是说,android系统中各种进程的启动方式init进程 --&
5647 人浏览
xiaozhu

Android中获取视频的第一帧图片

方案一:使用Glide获取视频的第一帧图片 Glide.with(holder.mCover.getContext()) .setDefaultRequestOptions( new RequestOptions() .frame(0)
5643 人浏览
android00

在Java中注解@SuppressWarnings("deprecation")的Deprecation是什么意思

问:我们在Java开发或者Android开发中,经常会遇到注解:@SuppressWarnings("deprecation")的Deprecation是什么意思答:@SuppressWarnings("deprecation")表示不检测过期的方法
5599 人浏览
android01

Android产品研发(十六)-- 开发者选项

上一篇文章中我们讲解了android中内存对象的序列化方式。由于android开发涉及到不同Activity的数据传递,对于基本数据类型数据的传递是没有问题的,但是一旦涉及到复杂数据类型,就需要将数据序列化以便传输,在文章中我们主要讲解了两种数据序列化的方式:实现Serializable接口和实现Parcelable接口,同时也比较了它们各自的优缺点和实现方式。具体关于内存对象序列化方面的知识可参
5569 人浏览
android00

Android 获取cache缓存的目录路径

Android开发中,有时需要知道cache缓存的路径。我写了一个静态类,供大家能参考public class CommonUtil { /** * 获取cache路径 * * @param context * @return */ public static String getDiskCachePath(Contex
5563 人浏览
SuperBig

Android Service详解(六)---绑定服务BoundService详解之AIDL的自定义属性使用

这是第六篇文章主要讲的是BoundService中用AIDL实现IPC,自定义属性的使用,上篇博客已经说明了AIDL应该如何使用,但是如果想传入一个自定义的类的时候怎么办呢?那么这篇博客将对这种情况进行详细描述废话不多说了,直接上步骤,前期的步骤上篇博客已经说明了,这篇是对上篇博客的扩展1.新建一AIDL文件,并与你即将定义的类型名字相同,例如Person.aidl2.新建一个类Person.ja
5541 人浏览
android01

Android产品研发(十四)-- App升级与更新

上一篇文章中我们讲解了android app中的轮训操作,讲解的内容主要包括:我们在App中使用轮训操作的情景,作用以及实现方式等。一般而言我们使用轮训操作都是通过定时任务的形式请求服务器并更新用户界面,轮训操作都有一定的使用生命周期,即在一定的页面中启动轮操作,然后在特定的情况下关闭轮训操作,这点需要我们尤为注意,我们还介绍了使用Timer和Handler实现轮训操作的实例,更多关于App中轮训
5523 人浏览
android01

Android源码解析(十)-- Launcher启动流程

Launcher程序就是我们平时看到的桌面程序,它其实也是一个android应用程序,只不过这个应用程序是系统默认第一个启动的应用程序,这里我们就简单的分析一下Launcher应用的启动流程。不同的手机厂商定制android操作系统的时候都会更改Launcher的源代码,我们这里以android23的源码为例大致的分析一下Launcher的启动流程。通过上一篇文章,我们知道SystemServer
5511 人浏览
cnbzlj

android 如何保留数据两位小数

今天,简单讲讲android如何保留运算结果为浮点数时,保留两位小数显示。这个其实很简单,最近做一个功能时,获取到文件的大小为B的数据,在界面上需要显示为MB,这是需要转换才可以1MB=1024*1024B,所以需要进行触发运算,但是运算结果为整数不好,需要为浮点数并且显示小数点后两位数据。当时居然不知道怎么办,所以在网上查找资料,最终解决了问题,这里记录一下。android 保留两位小数5种方法
5508 人浏览
android01

Android产品研发(六)-- Apk混淆

前面一篇文章中我们讲解了android里面的多渠道打包,对于大型的app来说,几百个上千个渠道包都是很正常的事,所以效率定制化是一件很重要的事。主要讲解了三种多渠道打包方式,并分析了其各自的利弊,在各自产品多渠道打包的时候,可以根据自身的产品需求选择相应的打包方式。而本文主要讲解Apk的混淆,这里的混淆分为两种代码混淆和资源文件混淆。实际的产品研发中为了防止自己的劳动成果被别人窃取,混淆代码能有效
5504 人浏览
android

Android9.0 http网络请求解决方案

1、用Retrofit请求网络报这个错CLEARTEXT communication to host not permitted by network由于 Android P 限制了明文流量的网络请求,非加密的流量请求都会被系统禁止掉。如果当前应用的请求是 htttp 请求,而非 https ,这样就会导系统禁止当前应用进行该请求,如果 WebView 的 url 用 http 协议,同样会出现加
5486 人浏览
android

调用Android自带浏览器打开网页

在Android中可以调用自带的浏览器,或者指定一个浏览器来打开一个链接。只需要传入一个uri,可以是链接地址。启动android默认浏览器在Android程序中我们可以通过发送隐式Intent来启动系统默认的浏览器。如果手机本身安装了多个浏览器而又没有设置默认浏览器的话,系统将让用户选择使用哪个浏览器来打开连接。Uri uri = Uri.parse("https://www.baidu.com
5485 人浏览
androidproject

Android RadarView之自定义雷达扫描动画效果

RadarViewRadarView for Android 是一个雷达扫描动画后,然后展示得分效果的控件。Gif 展示引入Maven:<dependency> <groupId>com.king.view</groupId> <artifactId>radarview</artifactId> <version>1.0
5484 人浏览
androidproject

二次贝塞尔曲线绘制原理讲解

贝塞尔曲线简介贝塞尔曲线(Bézier curve),又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲线的。贝塞尔曲线是计算机图形学中相当重要的参数曲线,在一些比较成熟的位图软件中也有贝塞尔曲线工具,如PhotoShop等。在Fla
5465 人浏览
android00

安卓第三方支付之微信支付

1、相关地址微信开发平台:https://pay.weixin.qq.com/wiki/doc/api/index.html1SDK下载:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=11_11异步通知文档:https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=8
5440 人浏览
android01

Android产品研发(十三)-- App轮训操作

上一篇文章中我们讲解了android app实现长连接的几种方式,各自的优缺点以及具体的实现,一般而言使用第三方的推送服务已经可以满足了基本的业务需求,当然了若是对技术有追求的可以通过NIO或者是MINA实现自身的长连接服务,但是自己实现的长连接服务一来比较复杂耗时比较多,而且可能过程中有许多坑要填,一般而言推荐使用第三方的推送服务,稳定简单,具体管理长连接部分的模块可参考:android产品研发
5438 人浏览
android

Android EditText设置只能输入数字和小数点

EditText可以设置多种输入方式,其中若要设置输入数字和小数点时应注意一下几点:1.如果设置只输入数字代码中edittext.setInputType( InputType.TYPE_CLASS_NUMBER);此时只会弹出数字输入框,符号点击后不会输入到文字框中xml中<EditText android:id="@+id/et_integral" android:l
5431 人浏览
java

因为 QUERY_ALL_PACKAGES 权限,我们上不了 Google Play 了

今天刚上班就被告知要移除 QUERY_ALL_PACKAGES 权限,做代码兼容,否则上不了 Google Play 了。google不通过截图:遇到这种情况,1,首先检查Manifest中可使用了改权限,如果使用了,去掉就行了2,还有可能是第三方的包里面包含这个权限,例如ShareSdk,这个时候编译项目,可在AndroidStudio中查看最后合并的Androidmanifest.xml文件,
5430 人浏览
android01

Android源码解析(十八)-- Activity布局绘制流程

这篇文章是承接上一篇文章(Android布局加载流程:android源码解析(十七)-->Activity布局加载流程)来写的,大家都知道Activity在Android体系中扮演者一个界面展示的角色,通过上一篇文章的分析,我们知道Activity是通过Window来控制界面的展示的,一个Window对象就是一个窗口对象,而每个Activity中都有一个相应的Window对象,所以说一个Ac
5426 人浏览
cnbzlj

android setGravity()的使用

今天,简单讲讲android LinearLayout中如何使用setGravity()。之前,在做一个功能时,需要根据数据的变化设置LinearLayout的gravity 。之前,自己写代码都是直接在xml文件里通过roid:gravity设置的属性,这次需要在java代码里动态设置时,居然不知道怎么设置。后来,在网上搜索了资料后,发现setGravity()就可以设置,这里记录一下。在进行U
5425 人浏览