android
夏沫1999
这个作者很懒,什么都没留下…
展开
-
Android String.format %f float/double .0000 多出现小数点
如果使用%1 $f,浮点型,会出现66.0000多追加了几个默认0这时候需要我们给转换下%1$.2f .2f意思是保留小数点两位 如果有C/C++基础的同学应该知道%mf, %.nf, %m.nf,其中m表示输出数据的宽度;n表示输出的实数保留n位小数;C语言写法:控制符 说明 %d 按十进制整型数据的实际长度输出。 %ld 输出长整型数据。 %md m 为指定的输出字段的宽度。如果数据的位数小于 m,则...原创 2021-12-09 17:20:13 · 929 阅读 · 0 评论 -
Android 使用Stringformat优化你的代码吧
在Android开发中,比如我们需要有一个验证码倒计时,很多开发的时候都会这样写int count = 60;textView.setText(""+count);count--;handler.sendxxxx;这样每组合一个数字都会生成一个新的字符串会重新在堆栈开辟空间优化方式:String.format()tvReSendMessage.setText(String.format(context.getResources().getStrin...原创 2021-11-03 11:09:44 · 2142 阅读 · 0 评论 -
Android onCreate /onSaveInstanceState 方法重载和解析
在Activity 中,我们通常都是在:protected void onCreate(Bundle savedInstanceState) {} 方法中加载activity的布局和初始化控件以及状态如果一不小心 写成了:@Overridepublic void onCreate(@Nullable Bundle savedInstanceState, @Nullable PersistableBundle persistentState) { super.onCreate.原创 2021-01-18 11:45:50 · 1082 阅读 · 0 评论 -
Android 技术栈和FrameWork
最近 Android的JNI 也就是C/C++层面需求开始增长,短视频-图像 算法等都是借助C来完成的 还有一些So的加密,或者虚拟道具等,C++ 比较高效原创 2020-10-24 19:36:58 · 326 阅读 · 0 评论 -
Android ConstraintLayout 下 RecyclerView 的底部数据显示不全解决方案
ConstraintLayout可真是解决了各种层级嵌套的问题,很Nice今天帮同事排查一个Bug,Android ConstraintLayout 下 RecyclerView 的底部数据显示,指定了topToBottomOf 但是最后一条数据只显示一半,经过排查和解决,发现他没有指定Bottom,也就是app:layout_constraintBottom_toBottomOf="parent"然后高度设置为0dp就可代码:<?xml version="1...原创 2020-09-29 10:55:06 · 3380 阅读 · 0 评论 -
Android 集成QQ登录/分享详细教程和Lorg/apache/http/conn/scheme/Sch处理
首先 现在SDK,目前只能通过Jar包的形式引入下载地址https://wiki.open.qq.com/wik然后:https://open.tencent.com/选择:然后下一步下一步 等创建好:打开刚才下载的SDK拷贝到项目的libs或者jniLibs 然后AddasLibra然后在Manifest中<!-- 第三方登录 QQ--><activity android:name="com.tencen...原创 2020-07-24 15:24:38 · 1805 阅读 · 1 评论 -
androidx viewpager2的使用详解
在Android 中,像常用的控件:TextView \ EditText \ Button\ImageView\ViewPager\RadioGroup\RadioButton\Switch\CheckBox等等这些大多数都是很有历史的控件了,我们接下来将一下一个全新的控件:ViewPager2在没退出androidx之前,android生态有些混乱,自从Google官方开始重视这一问题以后 就有了后续的jetpack和一系列的控件viewpager 我们一般是exends PageA..原创 2020-07-17 14:29:52 · 4663 阅读 · 0 评论 -
Android- 还在使用FindViewById和setOnClick吗,快来试试这个轻量级框架吧~SmartFind
在APP开发中,我们会创建很多视图和控件,往往需要在代码中去改变这些控件的属性:比如文字/颜色/大小/效果或者设置OnClick事件一般我们都是用findViewById 或者 使用ButterKnife来简化代码(ps:用 kotlin的当我没说).ButterKnife 不得不说是一个优秀的框架,(JakeWharton 大牛的作品 前 square 公司核心成员,现已加入Google Kotlin 研发部)这个框架得到了大家的一致认可,but:Jack 前几个月声明...原创 2020-07-14 10:44:09 · 513 阅读 · 0 评论 -
Java 8 - 14 新特性和API ---持续更新ing
Java8:默认接口实现:在1.7之前,只要是 interface 声明的,就是一个接口,里面的方法是public 并且不能有方法体的但1.8加入默认的实现,也就是 default有点就是在不改变现有规则的情况家,加入扩展<API>Predicate: 源码://// Source code recreated from a .class file by IntelliJ IDEA// (powered by Fernflower decom..原创 2020-05-29 17:34:57 · 475 阅读 · 0 评论 -
深入 Google Android 6.0/7.0/8.0/9.0/10.0/11.0 之权限适配详解
Android的6.0版本,即盛传已久的Android M已经在Google 2015年的 I/O大会上被正式发布。一个在业内已经被热议的议题是:Android M“为工作升级而生”(Android for Work Update)。有业内人士解释道:“Android M将把Android的强大功能拓展至任何你所能看到的工作领域。”根据Android系统以往的惯例,每一代新系统往往会根据其字母...原创 2020-04-21 17:47:56 · 2114 阅读 · 2 评论 -
Java/Android 23种设计模式之单例模式
在Android生态中,各种各样的设计模式总是可以见得到,比如时钟等为什么要有单例模式呢?在Java中,大多数的对象都是通过new 来申请空间,涉及到堆栈,如果频繁的去创建对象,会造成不小的内存开销,再一点就是没一个对象都是单独的,值是不同的,如果在一些业务场景不使用单例,会造成一些意料之外的结果,比如时钟,时间上的管理,比如Retrofit框架一般的封装也会使用单例,Retrofit.g...原创 2020-03-16 16:43:09 · 347 阅读 · 0 评论 -
编程之道 Java复用 抽象 以及设计模式的运用
我们日常开发中,通常一个项目如果不加以优化和性能调优,往往会造成用户体验以及开发上的囊肿,Java 面向对象三大特性 继承 封装 多态,但我们大多数都是只用到前两个,所以导致扩展性差,维护成本高,排查难度加大。 抽象:Android 或者Java中 抽取一个BaseControl、BaseActivity、BaseFragment、把一些特性相同的放入,让其子类可以直接调用、比如常见...原创 2019-12-20 10:57:24 · 433 阅读 · 0 评论 -
深入Android 原生JSON解析(JSONObject/JSONArray)解析教程以及细节剖析
今天是1024了,祝大家程序猿节快乐(ps:工作三年多了)早些时候 移动互联网刚刚兴起的时候,传输数据是通过XML,然后判断XML的Nood节点,易出错,解析XML有三种:SAXSAX(Simple API for XML)是一个解析速度快并且占用内存少的XML解析器,非常适合用于Android等移动设备。SAX解析XML文件采用的是事件驱动,也就是说,它并不...原创 2019-10-24 11:23:41 · 1017 阅读 · 0 评论 -
android edittext 不自动获取焦点
在EditText系列控件的上一级控件 比如LinearLayout RelativeLayout 属性中加入这两行 让父控件获取焦点 android:focusable="true" android:focusableInTouchMode="true"...原创 2018-11-08 11:06:38 · 2252 阅读 · 0 评论 -
Android DialogFragment can not be attached to a container view DialogFragment一些优化建议
DialogFragment 是Google官方比较推荐的一种弹框确认交互方式,因为它可以保存生命周期状态,一般我们会extends DialogFragment像下面这种写法在onCreateView中初始化视图,然后绑定控件运行-第一次没问题,有时候点击或者隐藏会抛出一个异常:java.lang.IllegalStateException: DialogF...原创 2019-07-20 15:17:45 · 3377 阅读 · 1 评论 -
Android 隐式调用相关APP打开.txt、3gp、mp4、java、c、pdf文件等
昨天一朋友遇到bug,解决不了了,于是本着你有困难我帮忙的心态帮他看一下~。要做的功能是将app的信息保存在手机.txt文件,然后调用html查看器等工具进行查看。但调用的时候一直不成功。参数传入的true,我稍微调整下,传入false,模拟器(5.1.1)可以顺利打开进行查看。但他的小米手机(API 28)打不开,看了一下代码,他没有动态申请读写权限,保存日志到手机需要读写权限...原创 2019-08-09 11:06:56 · 794 阅读 · 0 评论 -
Android 极光推送快速开发集成指南
现在的APP可谓是不可没有消息推送,这样可以提高用户的粘滞性,结合着大数据算法,推送一些关心的内容消息推送的第三方SDK有很多 极光/个推/小米/华为等,当然也可以公司开发一套消息推送 下面是极光推送集成指南(之前做过很多次,一直没有分享) setp1:导入SDK并配置引用,然后引入各个平台的so文件然后在配置清单文件中加入:<!-- since 3.0...原创 2019-09-05 16:50:56 · 995 阅读 · 0 评论 -
Android中 Intent/Bundle传递对象取值为null的剖析以及Serializable和Parcelable原理解析
在Android中传递数据一般为基本数据类型,int double float 等有时候会传递对象,那么这个对象和其内部类就要实现Serializable这个接口或者Parcelable这个接口Serializable:(不推荐)这个比较简单 一般直接写上implementsSerializable即可,复杂点需要加上ID。long类型。因为这个接口只是一个空接口,并没有需要...原创 2019-10-04 09:24:49 · 2233 阅读 · 0 评论 -
Android 微信登录/分享集成指南(原生)
现在一些主流的APP都有微信登录 / 支付 / 分享等功能,下面是集成指南1.需要有微信开发者账号,并且有微信登录 支付的权限Builder.Gradle中implementation 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'然后Manifest中<activity android:na...原创 2019-10-08 10:11:11 · 703 阅读 · 0 评论 -
Android Dialog / DialogFragment 的一些使用和优化心得(DialogFragment的使用和优化)
在我们的Android Application 中,会经常使用一些不太重要的提示或者确认,例如Toast,Dialog,popuwindow....等Dialog使用有时候也会很多,基本使用要么继承dialog,实现业务逻辑,要么是new AlertDialog.Builer().setXX.show()但遇到屏幕翻转 或者其他因素,会导致数据不会保存,影响用户体验,所以Dialog...原创 2019-07-17 15:24:44 · 1009 阅读 · 2 评论 -
Android 省市区县多选,非联动,简洁清新样式 集成简单
一般我们的产品里面都会有省市区选择,一般是联动的,网上一大堆,就不一一列举了,但有时候要求新颖一点,就要涉及到组合了,非联动的。去年做出来以后,想着分享一下,结果工作忙给忘记了,今天整理代码正好分享一下先看效果图:区县选择前区县选择后效果图可以下载下来源码 替换图标和主题实现思路...原创 2019-06-28 17:35:20 · 1014 阅读 · 0 评论 -
ImageView的scaleType的属性剖析
ImageView的ScaleType是ImageView内部的一个枚举ImageView的scaleType的属性值有MATRIX,FIT_XY,FIT_START,FIT_END,FIT_CENTER,CENTER,CENTER_CROP,CENTER_INSIDE.1.android:scaleType=“center”保持原图的大小,显示在ImageView的中心。当原图的s...原创 2019-06-28 16:44:49 · 270 阅读 · 0 评论 -
使用Objects.requireNonNull判断一个对象是否为空吧
如果当前对象为空 会抛出一个空指针异常否则就会返回当前对象原创 2018-11-26 14:54:15 · 31863 阅读 · 11 评论 -
Android RecyclerView notifyItemRangeChanged() 批量更新View
如果recyclerview 绑定了数据,假设数据有变化,我们通常是:notifyDataSetChanged 但如果数据过多肯定会消耗一些性能,出于优化的观点,发现recyclerview 有一个批量更新的方法notifyItemRangeChanged(); 参数:1 是起始位置,从哪里开始更新,2 更新的总数 通过源码分析发现,他是倒序遍历要更...原创 2018-11-16 09:01:14 · 13701 阅读 · 0 评论 -
AndroidStudio3.1Gradle的Bug
今天安装AS3.1,配置好,同步项目时候出现这个问题:Gradle sync failed: Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example,...原创 2018-05-21 17:32:14 · 342 阅读 · 0 评论 -
android EditText显示错误信息
在输入框显示错误信息 一般常见的是自定义Edittext 即继承EditText 或者在EditText右边设置一个ImageView 先隐藏但系统的EditText有个显示错误信息的方法 就是 et.setError("显示的消息");会弹出一个popuwindow;翻看源码:默认是这个图标 但可以修改edit.setError(CharSequence e...原创 2018-11-12 10:19:41 · 1036 阅读 · 0 评论 -
android 画一个矩形shape背景
<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="@color/red" /> <!-- 边缘原创 2018-11-08 11:05:16 · 1785 阅读 · 0 评论 -
Android 下拉加载更多 上拉刷新 框架 (太极 八卦样式刷新,支持自定义图片)
用业余时间 写了一个自定义的下拉刷新 上啦加载更多的控件 可以自定义ui首先 先看看效果图 可以上拉刷新 下拉加载更多控件源码以后放到github 或者私聊我...原创 2018-11-06 16:37:42 · 250 阅读 · 0 评论 -
android 再按一次退出应用 出现闪屏 重启
今天测试出来一个bug 再按一次退出功能 出现闪屏 重启@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_BACK: { long secondTime = System.cu...原创 2018-07-20 17:03:16 · 950 阅读 · 0 评论 -
android recyclerview 上下滑动导致点击事件和数据错乱问题解决
今天遇到一个奇怪的Bug 上下滑动Item时候 再往上滑 拨打电话 与刚开始不一致,网上很多人说setTag种种,但并没有什么卵用,很鄙视那些复制粘贴的两种解决方案getItemViewType(int position){return position} // 这样多种布局应该不方便在onBidViewHoudle中,添加点击事件的position 不要中onBidViewHoud...原创 2018-07-13 14:20:39 · 4159 阅读 · 5 评论 -
Android 使用ArrayAdapter 加载Bean数据
在Android中 我们经常使用到ListView GridView RecyclerView,Adapter 通常是继承自BaseAdapter/RecyclerView.Adapter<VH>但开发中也可能需要展示的数据只有一个标题或者属性,自定义Adapter显得有些囊肿,但ArrayAdaprer 很多资料都是使用ArrayList<String> 进行数据描...原创 2018-11-27 13:19:27 · 846 阅读 · 0 评论 -
android fragment 使用name关联Fragment
Fragment 可以说是Android 的 第五大组件了我们通常用法是 给Framelayout 设置ID ,然后到代码里去进行add 或者replace操作,让Fragment去处理数据除此之外 还有一种形式就是 在布局里加入该fragment的全类名<fragment android:id="@+id/fragment" android:name="com...原创 2018-12-14 15:57:01 · 2275 阅读 · 0 评论 -
linux 下 android studio 不能输入中文记录
这几个月一直在Linux下进行Android开发 可以编译android 工程 学习下framework, Linux 版本 Debianandroid studio 3.0.1jdk 1.8 配置中文输入法 在android studio 文件夹下 /bin/studio.sh这个文件 打开 在文件里面加入export XMODIFIERS="@im=fci...原创 2019-01-28 09:47:31 · 1074 阅读 · 0 评论 -
android 自定义 刷新/加载更多 Google官方级高性能控件 ,可自定义UI图片
android中 常会用到各种列表控件,像古老的ListView , GridView,常用的RecyclerView,或者自定义的ViewGroup,实现下拉刷新的控件库也是各种各样,花样百出,但有一个简约可自定义的不算多,于是手撸一个控件Google官方性能级别的控件,可自定义刷新图(在drawable-hdpi>refresh_icon)纯手工打造。体验竟然如此般丝滑。...原创 2019-06-28 15:00:11 · 969 阅读 · 2 评论 -
Android ViewPager & Fragment 懒加载深度剖析
在Android中 除了四大组件经常使用(四大组件通信的基础桥梁是Intent)其实还有一个也是被经常使用 那就是Fragment(比如动态替换,实现多Tab不通效果等)先说一下Fragment生命周期:ViewPage 常用的Adapter有 PageAdapter,PageStateAdapter,一般都是复写getItem getCountdestor...原创 2019-05-31 13:58:52 · 477 阅读 · 0 评论 -
Android 项目国际化 多国语言适配
近期一个项目 ,为了响应一带一路政策。。。要做国际化 适配三国语言(中文,英语,葡萄牙语) emmm....那就开始搞吧首先在项目里面 写好要适配国家的values-xxx-xx比如:各个国家的编码:中文(中国):values-zh-rCN中文(台湾):values-zh-rTW中文(香港):values-zh-rHK英语(美国):values-e...原创 2019-05-27 17:04:29 · 10476 阅读 · 2 评论 -
git 命令窗口提交错误 remote: HTTP Basic: Access denied
一直以来 版本控制从最早开始的svn 到现在的git 可谓是主力军啊刚开始我接触的也是svn ,慢慢迁移至gitgit 配置好以后,提交步骤:git pull origin develop // 先拉取代码git add . ; add 后面有个空格哦git commit -m "update" 提交到本地缓存git push origin develop 提交到版...原创 2019-05-22 18:32:22 · 1320 阅读 · 0 评论 -
Android Intent 传递值的几种方案和对比
经常有人会问Android 传值问题,抽空写篇文章分享下在Android中,我们会经常进行页面跳转和传递值,比如Activity to Activity,Activity to Fragment(使用Bundle setArgument()),等各种办法,如果传递的是普通的数据类型(整形,浮点型,字符,String等) 可以直接putExtra,然后另外一个界面直接getIn...原创 2019-05-22 15:31:34 · 462 阅读 · 0 评论 -
Android No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android
以前遇见过好几次,没有记录,今天顺手记录下:No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android 这个错误就是没有找到NDK目录下的mipsel-linux-android 这个文件夹,但以前没有这种错误,一般是更新插件或者AS版本导致的,看官方介绍...原创 2019-05-22 11:16:52 · 244 阅读 · 0 评论 -
Android 调用接口 java.net.UnknownServiceException CLEARTEXT communication to IP 失败
Android API 23以上 有一种保护机制 Google表示,为保证用户数据和设备的安全,针对下一代 Android 系统(Android P) 的应用程序,将要求默认使用加密连接,这意味着 Android P 将禁止 App 使用所有未加密的连接,因此运行 Android P 系统的安卓设备无论是接收或者发送流量,未来都不能明码传输,需要使用下一代(Transport L...原创 2019-04-30 13:57:03 · 388 阅读 · 0 评论