综合( 右侧选择分类 )
android01

Android产品研发(二十二)-- Android 使用调试技巧

上一篇文章中我们讲解了android UI优化方面的知识。我们讲解了android中的include、marge、ViewStub标签,在使用这些标签时可以简化我们的布局文件,优化组件绘制流程;讲解了android中的过度绘制相关知识点,通过优化我们的App过度绘制可以提高App的UI绘制流程与性能;我们还讲解了App中一些UI优化的小tips。更多关于android UI优化方面的知识可以参考我
584 人浏览
androidproject

Github 安卓高级UI

目录一、本项目的作用二、下载试试三、已经整理完成的章节1、贝塞尔曲线2、PathMeasure3、属性动画4、Xfermode5、VelocityTracker和Scroller6、绘制流程7、svg8-1、canvas_clip8-2、canvas_draw8-3、canvas_text四、继续整理的章节五、作者简介1、个人博客2、联系方式3、赞赏一、本项目的作用本项目主要用于Android高级
582 人浏览
cheng

点击返回键,关闭Dialog,并且关闭Activity

点击返回键,关闭Dialog,并且关闭Activity当我们点击返回键,需要将整个Activity和Dialog一块关闭时。我们首先想到的就是通过onKeyDown()方法,重写Activity的返回键事件;但结果并不愉快,好像没有达到我们想要的效果。原来是Dialog抢走了Activity的焦点,Activity不再是当前的焦点,所以无法获取back键事件,因此我们需要重写Dialog的返回键事
581 人浏览
android01

Android产品研发(一)-->实用开发规范

从这篇文章开始我们暂停一下对android源码的分析,开始讲一下android产品研发中一些常用的技术,技巧,方法,实践等姿势。这里需要强调的是我们所讲解的这些东西可能对产品开发中比较常用的,因为对于项目开发中,可能更多的强调管理,进度方法的东西,对工程化的东西比较强调,而我们这里更多的是对产品技术方面的归纳总结。而本文中选择将开发规范作为这个系列的第一篇文章,就是个人感觉产品研发过程中,开发规范
580 人浏览
android01

Android产品研发(二十三)-- Android 中保持静态密钥实战

上一篇文章中我们讲解了android中的实用调试技巧。讲解了android中的原生Log API以及其使用方式,讲解了自定义日志API、使用方式和实现原理,讲解了通过gradle配置日志框架在正式环境中屏蔽日志信息等。最后我们还重点讲解了android studio中的断点调试技巧,主要包括:断点调试功能、日志断点、求值调试、异常断点、方法断点等。更多关于android中实用调试技巧的知识,可以参
578 人浏览
android01

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

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

Android源码解析(二十)-- Dialog取消绘制流程

上几篇文章中我们分析了Dialog的加载绘制流程,也分析了Acvityi的加载绘制流程,说白了Android系统中窗口的展示都是通过Window对象控制,通过ViewRootImpl对象执行绘制操作来完成的,那么窗口的取消绘制流程是怎么样的呢?这篇文章就以Dialog为例说明Window窗口是如何取消绘制的。有的同学可能会问前几篇文章介绍Activity的加载绘制流程的时候为何没有讲Activit
577 人浏览
hangge

SpringBoot - 配置文件application.properties使用详解(附:Profile多环境配置

1,开启自动转码功能application.properties提供了自定义属性的支持,如果数据有中文的话需要进行转码,否则可能会出现乱码问题。如果我们使用的是IntelliJ IDEA,那么直接在setting配置中进行如下设置,这样编辑器就会自动对中文内容进行转码。2,配置属性的定义(1)我们可以在application.properties中添加类似如下这样简单的常量配置:12my.name
577 人浏览
android01

Android产品研发(二十一)-- Android中的UI优化

上一篇文章中我们讲解了android产品研发过程中的代码Review。通过代码Review能够提高产品质量,增强团队成员之间的沟通,提高开发效率,所以良好的产品开发迭代过程中,代码Review是一个必不可少的步骤。那么如何进行代码Review呢?我们主要讲解了团队成员之间的代码Review,代码lint检查,开发规范等方面的知识点,更多关于代码Review相关的知识可参考我的:android产品研
577 人浏览
hangge

SpringBoot - 整合Thymeleaf模板引擎(附样例)

一、基本介绍1,什么是 ThymeleafThymeleaf是新一代的Java模版引擎,类似于Velocity、FreeMarker等传统Java模版引擎。Thymeleaf的主要目标是将优雅的自然模板带到开发工作流程中,并将HTML在浏览器中正确显示,并且可以作为静态原型,让开发团队能更容易地协作。Thymeleaf能够处理HTML、XML、JavaScript、CSS甚至纯文本。Thymele
576 人浏览
androidproject

SpriteAnimationView:一个用于播放精灵图动画的组件

SpriteAnimationViewA customized view to play sprite sheet animation查看中文版本Usage:<com.xinxin.spritesheetanimation.SpriteAnimationView android:id="@+id/animation_view" android:layout_width
576 人浏览
littleGG

iOS可配置系统

## 介绍可配置系统是一套动态更新App的系统,允许我们在不发版的情况下,更新App的内容和外观。为什么会有这样一个系统?2015年初,某产品发现x宝的底部栏时不时的更换皮肤,贴合不同的节日和主题,非常漂亮,遂萌生了我们也要搞一套的想法。只是简单的支持更换UI,一年用个两三次,有我们开发自己来配。于是第一版系统诞生了,没有后台,由我们自己写JSON字符串,仅支持动态更新底部栏的图片。当然,需求的野
576 人浏览
android00

Android Studio butterknife安装以及使用

第一步:打开Androidstudio的配置,找到Plugins,在右边搜索ButterKnife ,你就会看到下面这个界面。没有错,这样是搜不到的,因为这个是搜的应该是已经安装的,没有安装的就需要点击Search in repositories,你就会看到你想要的东西了。第二步: 如图选中 Zelezny,点击Install,等安装完成之后,再点击Restart Android Studio重启
575 人浏览
hangge

K8s - Kubernetes使用详解2(运行Deployment样例2:使用配置文件创建资源)

我们知道Kubernetes支持两种创建资源的方式:命令和配置文件。在上文中我介绍了前者(点击查看),下面我接着介绍后者:通过配置文件创建资源。二、运行 Deployment(使用配置文件)1,基本用法(1)首先我创建一个配置文件(nginx.yml),里面配置好所有资源的属性,内容如下:1234567891011121314apiVersion: extensions/v1beta1 # a
574 人浏览
cnbzlj

Android 极光推送设置别名

不废话,需求:服务器想向某一个用户推送消息,怎么办?不会极光推送接入的看我之前写的如何接入极光推送的文章,// 调用 JPush 接口来设置别名。 JPushInterface.setAliasAndTags(getApplicationContext(), (Str
574 人浏览
xiaozhi

18.JavaScript 是如何工作的:WebRTC 和对等网络的机制

概述WebRTC,名称源自网页即时通信(英语:Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的API。在此之前,P2P技术(如桌面聊天应用程序)可以做一些网络做不到的事情,WebRTC 填补了 Web 这一关键空白点。WebRTC 是一项实时通信技术,它允许浏览器或者 app 之间可以不借助中间媒介的情况下,建立浏览器之间点对点的连接
573 人浏览
android02

Android产生随机数

Android产生随机数1.产生指定位数的随机数以产生6位数随机数为例int num = (int) ((Math.random() * 9 + 1) * 100000);产生其他位数随机数在最后面要乘的数即 100000 后加0即可2.产生指定范围的随机数以产生[10,99]范围内的随机数为例int min=10; int max=99; Random random = new Random
572 人浏览
hangge

k8s - 解决Terminating状态的Pod删不掉的问题(强行kubectl delete pod)

1,问题描述(1)最近发现咋Kubernetes集群上有个处于Terminating状态的Pod:(2)但通过kubectl delete pods命令却死活无法将其删除:1kubectldeletepods httpd-app-6df58645c6-cxgcm2,解决办法(1)无论各种方式生成的pod, 均可以使用如下命令强制删除:1kubectldeletepods <pod> -
570 人浏览
android01

Android产品研发(十五)-- 内存对象序列化

上一篇文章中我们讲解了android app中的升级更新操作,app的升级更新操作算是App的标配了,升级操作就是获取App的升级信息,更新操作是下载,安装,更新app,其中我们既可以使用app store获取应用的升级信息,也可以在应用内通过请求本地服务器获取应用的升级信息,并通过与本地app的版本号对比判断应用是否需要升级。升级信息是app更新的基础,只有我们的app的升级信息指明需要更新,我
570 人浏览
hangge

K8s - 免费的Kubernetes在线实验平台介绍1(Play with Kubernetes)

kubernetes(简称K8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用。它的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。 不过在我们日常学习中,要找到这么多台服务器来搭建Kubernetes集群并不如容易。好在Docker为我们提供一个的实验网站Play with Kubernetes(PWK),我们
570 人浏览