-
kotlin
-
在工作中,根据需求,EditText对输入的内容进行20个字符的限制,一个汉字占两个字符,一个字母占一个字符,当已经输入19个字符的时候,不可以输入汉字,但是还可以输入一个字母。如果输入超过20个字符,进行截取20个字符。以下是网上大神的工具类,我这边根据自己需求修改。(其中的20个可以随意的修改)1,创建工具类packagecom.zhzd.youde.util;
importandroi
-
android01
-
上一篇文章中我们讲解了如何在android studio中进行单元测试。实际开发过程中有一些功能性的需求,比如测试工具类,测试数据存储等测试工作,如果还是通过重复执行apk文件的编译,安装,运行等会浪费大量的时间,而这些功能与android的开发环境无太大的关系,我们完全可以使用单元测试来执行。android studio中默认是支持进行单元测试的,并提供了获取Context等系统对象的API,我
-
android01
-
上一篇文章中我们讲解了android app实现长连接的几种方式,各自的优缺点以及具体的实现,一般而言使用第三方的推送服务已经可以满足了基本的业务需求,当然了若是对技术有追求的可以通过NIO或者是MINA实现自身的长连接服务,但是自己实现的长连接服务一来比较复杂耗时比较多,而且可能过程中有许多坑要填,一般而言推荐使用第三方的推送服务,稳定简单,具体管理长连接部分的模块可参考:android产品研发
-
android
-
今天有人问我,android系统不同分辨率,不同大小的手机,字体大小怎么去适应呢?其实字体的适应和图片的适应是一个道理的。一、原理如下:假设需要适应320x240,480x320分辨率。在res目录下新建文件夹values-320x240, values-480x320。然后在文件夹 values ,values-320x240 和 values-480x320 下新建xml文件dimens.xm
-
android01
-
好吧,终于要开始讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等,首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:An activity represents a single screen w
-
kotlin
-
一些在 Kotlin 中广泛使用的语法习惯,如果你有更喜欢的语法习惯或者风格,建一个 pull request 贡献给我们吧!创建 DTOs(POJOs/POCOs)data class Customer(val name: String, val email: String) 会为 Customer 类提供以下功能:所有属性的 getters (对于 var 定义的还有 setters)equa
-
android00
-
今天下载了一个1.2.1.1版本的Android Studio,使用VPN更新好SDK之后就新建了一个hello world工程测试一下环境,然后就出现以下错误:Error:Execution failed for task ':app:compileDebugAidl'. > aidl is missing
什么情况?全新安装的环境也有错误?Google发布这个工具时没有测试好吗?没搞
-
android01
-
上一篇文章中我们介绍了hybrid开发相关的知识。重点介绍了hybrid开发的概念,hybrid开发的作用,android中如何实现hybrid开发,android中实现hybrid开发的例子,以及产品开发中hybrid开发实践等,通过对以上这些概念的介绍我们对hybrid开发应该已经有了大概的了解,更多具体的内容可参考我的:android产品研发(十七)-->Hybrid开发本文中我们将介
-
android01
-
作为Android登录 之 GooglePlay登录的姊妹篇,这俩篇主要是对接国外平台登录的文章。作者文笔并不好,但是,管他呢,实现功能不就得了嘛。兄弟们自带梯子啊然后按照流程,创建申请什么的,也就不多说了。接下来就是咱对程序动手的时候了老规矩,咱一步步来首先在我们的根目录中的build.gradle文件添加jcenter()repositories {
jcenter()
}
根目
-
android01
-
这篇文章是承接上一篇文章(Android布局加载流程:android源码解析(十七)-->Activity布局加载流程)来写的,大家都知道Activity在Android体系中扮演者一个界面展示的角色,通过上一篇文章的分析,我们知道Activity是通过Window来控制界面的展示的,一个Window对象就是一个窗口对象,而每个Activity中都有一个相应的Window对象,所以说一个Ac
-
android00
-
安卓开发中,在写布局代码xml的时候,如果想看到运行之后才能看到的布局效果,但又不想动不动就把应用跑起来。就可以用到tools这个命名空间了。tools命名空间比较特别。该命名空间可以覆盖组件的任何属性,以便在Android Studio预览中进行不同的展示。而,应用运行时,所有tools打头的属性都会被忽略,上面的文字不会显示出来。真的很方便!例子如下:<TextView
and
-
android
-
(1)视图透明度,值在0-1之间,0为完全透明,1为完全不透明
android:alpha
setAlpha(float)
(2)视图背景
android:background
setBackgroundResource(int)
(3)视图是否可点击
android:clickable
setClickable(boolean)
(4)设置view的备注说明,作为一种辅助功能提
-
android00
-
清除glide的缓存 在进Activity时的onCreate()里执行缓存清理1, 清除硬盘缓存Glide.get(this).clearDiskCache();2,清除内存缓存Glide.get(this).clearMemory();
-
android01
-
上一篇文章中我们讲解了在Android App的实际开发中,尽量不在静态变量、全局变量中保存数据,这是因为App的进程可能是不安全的,在部分手机中其有可能被系统杀死,从而造成静态全局变量重新初始化。而这时候App当前页面的Activity还会被保存在内存中,从而造成App并没有被重启的假象,但是这只是显示的页面没有被杀死,而进程实际上是被重新启动了的。这时候在使用已被重新初始化的静态变量就会发生一
-
android
-
Could not find com.android.tools.build:aapt2:3.2.1-4818971.android studio 升级到了3.0 取消了apt 报了这个错Could not find com.android.tools.build:aapt2:3.2.0-alpha14-4748712.Searched in the following locations: fi
-
android
-
记录一下如何把软键盘的回车按键变成搜索按键这个估计大部分人也经常用的到这个直接xml文件设置 EditText 三个属性android:imeOptions="actionSearch"
android:singleLine="true"
android:maxLines="1"网上有些直接用 android:imeOptions="actionSearch"这样是不够的 而 android:
-
android01
-
国内的Android开发者还是很苦逼的,由于众所周知的原因,google play无法再国内打开,所以android系的应用市场,群雄争霸,而后果就是国内存在着有众多的应用市场,产品在不同的渠道可能有这不同的统计需求,为此android开发人员需要为每个应用市场发布一个安装包,这里就涉及到了android的多渠道打包。本文主要讲解的就是几种主流的多渠道打包方式,以及其优劣势。通过配置gradle脚
-
android
-
在Android中的加载网络图片是一件十分令人头疼的事情,在网上有着许多关于加载网络图片的开源库,可以让我们十分方便的加载网络图片。在这里我主要介绍一下我自己在使用Volley, Picasso, Universal-Imageloader的一些使用的感悟。以及最基本的用法介绍。 一、android-Volley 给ImageView设置图片源// imageView是一个Image
-
androidproject
-
flutter自定义波浪viewvoidmain()=>runApp(WaveWidget(
bgColor:Colors.lightBlue,
//imageProvider:AssetImage('assets/pic/ic_headimg.png'),
//imgSize:Size(50.0,0.0),
size:Size(300.0,500.0),
));
-
android01
-
前面一篇文章中我们讲解了android里面的多渠道打包,对于大型的app来说,几百个上千个渠道包都是很正常的事,所以效率定制化是一件很重要的事。主要讲解了三种多渠道打包方式,并分析了其各自的利弊,在各自产品多渠道打包的时候,可以根据自身的产品需求选择相应的打包方式。而本文主要讲解Apk的混淆,这里的混淆分为两种代码混淆和资源文件混淆。实际的产品研发中为了防止自己的劳动成果被别人窃取,混淆代码能有效