其它
文章平均质量分 50
一些其他技术总结
AmyTan小小燕
这个作者很懒,什么都没留下…
展开
-
android studio编译安装apk失败
上午11:17 Failed to commit install session 1012874714 with command cmd package install-commit 1012874714. Error: INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1012874714.tmp/base.apk (at Binary XML file line #30原创 2022-07-02 11:23:20 · 1817 阅读 · 0 评论 -
几行代码解决RadioGroup+Fragment的重叠问题
一直以来,项目的主页面框架都喜欢用RadioGroup+Fragment,解决Fragment重叠也是各种方法都有,今天讲一个使用起来特别简单的方法。灵感来自于FragmentPagerAdapter。先看看使用的方法:public class MainActivity extends AppCompatActivity { private FlexibleRadio rgMain; @原创 2017-04-27 15:23:02 · 1262 阅读 · 0 评论 -
神奇的ActivityLifecycleCallbacks,解决Activity管理的后顾之忧
最近做项目,在极光推送收到通知时,经常要各种跳转。那么一大堆问题来了:收到通知时,应用是否打开?应用打开了是否处于前台(有没有按Home键之类的)?处于栈顶的Activity是否是你要跳转的Activity?栈顶的Activity是否又是登录页面等等…下面带大家看看如何有效使用ActivityLifecycleCallbacks来解决这一系列问题。public class ActivityLifec原创 2017-04-21 19:46:52 · 4951 阅读 · 2 评论 -
总结TextView,EditText使用的点点滴滴
对于Android开发程序员来说,几乎只要有布局存在的地方,就一定存在TextView。而对TextView做一些常见的总结和封装能够大大的提高我们的使用效率。下面是我总结的工具类,希望能帮到大家。/** * Created by Apple on 17/4/21. * 一些常见的关于TextView之类的工具类 */public class TextUtils { /** *原创 2017-04-21 14:52:00 · 364 阅读 · 0 评论 -
从ZonedDateTime开启日期时间的管理
有时候服务器对于时间日期,只会返回给你一个字符串,而你根据业务需求要把该字符串转换成各种需要的格式。下面是本人总结的一个工具类,话说Java 8的时间日期真的很好用,我们服务器返回的是标准时间,即ZonedDateTime格式,其他格式的类似。/** * Created by Apple on 17/4/21. * 时间日期工具类,注意这里的时间字符串都是标准时间,即ZonedDateTime样原创 2017-04-21 14:22:33 · 6276 阅读 · 0 评论 -
正确使用FragmentPagerAdapter,避免Fragment重叠问题
作为一个android 开发程序员,大家都曾为Fragment重叠的问题所苦恼。目前解决方法也很多,我今天给大家介绍一个很简单的方法,不需要增加任何代码就能解决此问题。原创 2017-04-20 17:30:19 · 4473 阅读 · 0 评论 -
自定义圆形进度条实现动态显示指定进度
首先得写一个类RoundProgress继承View,重写其中onMeasure()和onDraw()方法。在onMeasure()里获取当前画布的宽度。 在onDraw()方法里主要绘制如下三部分:绘制圆环绘制圆弧绘制文本相关属性如下: /** * 圆环的颜色 */ private int ringColor; // 圆环进度的颜色 p原创 2016-11-13 16:45:35 · 4668 阅读 · 2 评论 -
详解Message,Handler,MessageQueue,Looper的关系
在讲它们之间的关系前先介绍几个相关概念:一、Message消息 1、作用:线程间通讯的数据单元,可以封装数据 2、创建:调用其静态方法Message.obtain(),直接从内部维护的消息池中获取一个已有的消息。 3、常见属性: int what : 唯一标识此消息 int arg1,arg2:Message对象可以封装的int型数据原创 2016-11-07 21:54:20 · 1840 阅读 · 2 评论 -
自定义RecyclerView实现下拉刷新和上拉加载
通过导入第三方库实现ListView的上拉加载和下拉刷新比较简单,今天我要讲的是自定义RecyclerView实现下拉刷新和上拉加载。首先,自定义下拉刷新上拉加载是通过给RecyclerView添加头部和尾部实现的。而问题是RecyclerView并没有addHeaderView(View v)和addFooterView(View v)方法。 第一步:自定义HeaderAndFo原创 2016-10-31 16:27:26 · 7334 阅读 · 4 评论 -
Android系统编译问题总结
1、编译9.0的时候报错如下:vendor/qcom/proprietary/camx/src/core/camxpropertyblob.h:169:10: fatal error: ‘g_camxproperties.h’ file not found#include “g_camxproperties.h”^~~~~~~~~~~~~~~~~~~~1 error generated....原创 2018-11-26 20:09:21 · 8819 阅读 · 0 评论 -
详解Android.mk
一、概述1、Android.mk主要是告诉build system (编译系统)以什么样的规则编译你的源代码,并且生成对应的目标文件,目标文件可以分为如下几种:APK程序 :一般的Android应用程序,编译打包生成apk文件。JAVA库:编译打包生成jar文件。C/C++应用程序:可执行的C\C++应用程序C\C++静态库 :编译生成C\C++静态库,并打包成.a 文件C\C+...原创 2018-09-06 19:02:56 · 3844 阅读 · 0 评论 -
刷机时遇到的问题
OEM locked 问题 解决:打开手机上开发者选项,打开 “OEM 解锁” 在终端执行fastboot oem unlock 设备权限不足:验证udev规则。 解决:adb kill-serversudo adb start-server ...原创 2018-05-07 17:20:24 · 2252 阅读 · 0 评论 -
SharedPreferences的全面解析
本文主要参考 : 深入理解Android中的SharedPreferences SharedPreferences的apply和Commit方法的那些坑可能导致ANR的情况在UI线程中调用getXXX 或 edit()方法 (第一次调用getSharedPreferences()后)用apply方法提交修改,当Activity的onPause/onStop等方法被调用时在UI...原创 2018-04-27 20:21:23 · 833 阅读 · 0 评论 -
Android开启odex,优化开机速度
开odex优化首次开机速度,是牺牲空间换取时间的做法,仅限于空间足够的设备。开了odex之后,在编译的时候,整个system image就会被预先优化。由于在启动时不再需要进行app的dex文件进行优化(dex2oat操作)从而提升其启动速度。 关于odex,有几个下面几个宏开关:1、WITH_DEXPREOPT这个开关在6.0 USER版本上是默认开启的,意思就是USER版本要开ode...转载 2018-04-19 10:50:07 · 10078 阅读 · 0 评论 -
关于Android动态权限处理更友好的方式(Kotlin)
用户拒绝权限(如图片选择拒绝存储权限后显示空页)后,完全不知道该干什么。这是我们应该指导用户去开启权限(因为很多时候手比脑子更快的就点击了拒绝)。如下图: 首先定义一个权限处理的工具类:class PermissionUtils(private val context: Activity) { private var mHasPermissionRunnable: Runnable? = n原创 2017-08-21 17:19:34 · 4128 阅读 · 0 评论 -
多行滚动jQuery循环列表
代码如下:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head> <meta http-equiv="C原创 2018-02-26 17:29:38 · 1332 阅读 · 0 评论 -
inotify监听针对mask的处理
if(((IN_CREATE|IN_MOVED_TO) & event->mask) && (IN_ISDIR & event->mask)) { // 新增目录} else if((IN_CREATE|IN_MOVED_TO) & event->mask) { // 新增文件} else if(IN_CLOSE_WRITE & event->mask) { // 修改文件内容} else if((IN_DEL原创 2020-06-03 17:02:17 · 544 阅读 · 0 评论