自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

grace的专栏

慵懒的蜗牛,每天向上一点点。

  • 博客(107)
  • 资源 (4)
  • 收藏
  • 关注

原创 kotlin之foreach跳出循环

理论上foreach在执行的过程中是不允许跳出循环的,如果想要跳出循环,有以下集中方式。创建函数跳出循环。fun breakTest() { (0..10).forEachIndexed { index, i -> Log.d("test start index=$index,i=$i") if (index >= 7) { return } L

2022-05-30 20:11:47 1598

原创 Android4.4.4之bug总结

我们平时做Android手机的平台适配工作,绕不开的问题就是对不同Android版本的适配,以下总结了在实际应用中Android4.4.4遇到的一些问题。应用安装后运行异常我们的应用在升级以后,理论上来说,运行的是最新的apk逻辑,然而,在Android4.4.平台上面,如果是系统预置应用,运行的是旧代码。如果minifest的四大组件有删除,就会出现类似于minifest中定义的类找不到等问题而产生崩溃。总结:此问题目前通过系统重启,问题会自动消失。主要是因为系统应用开机的时候预加载,即使新的ap

2021-12-20 14:55:50 2414

原创 Android9坑之总结

我们平时做Android手机的平台适配工作,绕不开的问题就是对不同Android版本的适配,以下总结了在实际应用中Android9遇到的一些问题。Activity生命周期异常。(1) 在Android9的平台上面,我们先启动A应用的AActivity。(2) 然后再启动B应用的BActivity。(3)手动killBActivity,或者BActivityu因为某些异常退出。异常:AActivity无法走到onResume卡住。总结:目前只发现在Android9平台有此问题。...

2021-12-20 11:17:23 1993

原创 Android studio坑之签名异常

使用android studio工具编译apk,我们一般采用run,build,gradlew assemble集中方式编译。理论上编译出来的apk应该是一样的,实际呢?先描述下踩坑的结果:通过build和gradlew assemble方式编译的apk,apk正常签名,通过run编译出来的apk,里面竟然没有签名文件,纳尼???定义签名signingConfigs { sign { storeFile file(getKeyStoreFile('****.

2021-12-14 15:51:30 1740 3

原创 Kotlin协程GlobalScope.launch无法引用

问题描述:Kotlin GlobalScope.launch无法引用。引用方式如下:ext.kotlin_version = "1.6.0"implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0-RC'解决:修改Kotlin的版本。引用如下:(1)项目的build.gradle指定Kotlin版本: ext.kotlin_version = "1.4.32"(2)app的build.gradle中指定引用协

2021-12-03 17:55:34 2798

原创 gradle升级踩坑指南

升级gradle后,除了语法的切换,还有各种各样奇奇怪怪的问题,这里我们大致总结下。1.升级步骤(1)修改gradle-wrapper.properties版本distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip(2)修改项目根目录build.gradledependencies { classpath "com.android.tools.build:gradle:4.1.3"

2021-12-03 11:15:21 4054 2

原创 Kotlin易踩坑之委托的使用(一)

文章目录前言一、Koltin委托常见使用1.避雷指南一总结前言刚开始接触kotlin的委托,深深的koltin的委托吸引,初见,so easy,真的是码农的福音,语法糖,简洁;委托,真是方便。一、Koltin委托常见使用1.避雷指南一我们平时使用的成员变量委托,常见的使用方式如下:代码如下(示例):private val mA:A by lazy { A() }官方是这样描述的:通过by lazy的方式,上述代码中的A对象只会被创建一次,并且只有在第一次调用的

2021-12-02 21:24:41 2113

原创 多渠道管理应用

文章目录前言一、案例演示平台二、解决多平台的代码开发问题场景一:生产某种水果场景二:不同的水果需要施品种不同的肥料场景三:我们需要的香蕉能够手动剥皮总结前言最近在做项目中,需要适配不同的平台,不同平台功能不同,每个平台如果都需要咔嚓咔嚓写一堆代码,脑壳疼。为此,我们需要通过多渠道去解决这些问题。一、案例演示平台我这里主要是通过androidStudio来演示如何解决这些问题。工具的下载方式,网上一大堆,这个不是我们重点描述的内容,自行解决。二、解决多平台的代码开发问题场景一:生产某种水果假

2021-02-18 18:49:29 386

原创 抓取日志并保存到本地

抓取日志并保存到本地通过代码抓取应用打印的日志并保存到本地目录下文章目录抓取日志并保存到本地前言一、参考方案1.通过在代码中执行Linux命令实现总结前言我们的应用在使用的过程中,有的时候随机出现异常,复现难度高,这个时候应用能够自己抓取日志并保存到本地对码农来说,就非常的重要。提示:以下是本篇文章正文内容,下面案例可供参考一、参考方案1.通过在代码中执行Linux命令实现代码如下(示例): //获取当前进程的pid int pid = android.os.Process.my

2021-02-05 15:36:09 1372

原创 Android通过代码重启设备

Intent intent = new Intent(Intent.ACTION_REBOOT);intent.putExtra("nowait", 1);intent.putExtra("interval", 1);intent.putExtra("window", 0);this.sendBroadcast(intent);

2020-10-27 16:00:44 638

原创 Fragment的使用

我们在实际的应用中,页面之间的切换,如果使用Activity的话,太沉重了,这个时候,Fragment就是一个不错的选择。接下来我们用一个例子来实现它:通过一个页面启动另一个页面,并且可以返回到之前的页面。先创建一个Activity public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) {

2020-10-13 21:29:42 123

原创 网络请求框架,volley和Async网络框架

网络请求框架,volley和Async网络框架1、volley特点:1)适合数据量不大但是通信频繁的场景。2)网络通信快,简单,健壮3)Get,Post网络请求及网格图像的高效率异步处理请求。4)可以对网络请求进行排序优先级。5)网络的请求缓存6)多级别取消请求7)和Activity生命联动(Activity结束的同时取消所有的网络请求)8)不适合大数据的请求,如几百兆的视频。标题2、Android-async-http1、清晰的请求回调2、请求时基于线程池,限制并发资源的使用情况

2020-10-10 17:04:06 101

原创 Android多进程注意事项

一般来说,使用多进程会造成如下几个方面的问题:静态成员和单利模式完全失效 安卓会为每一个应用分配一个独立的虚拟机,或者说为每个进程都分配一个独立的虚拟机,不同的虚拟机在内存分配上有不同的地址空间,这就导致不同的虚拟机中访问的同一个类的对象会产生多份副本。线程同步机制我完全失效 本质和上面的类似,既然都不是一块内存了,那么不管是锁对象还是锁全局类,都无法保证线程同步。因为不同进程锁的不是...

2018-05-15 15:27:01 235

原创 配置环境变量电脑重启adb配置失效

配置环境变量电脑重启adb配置失效(1)检测环境变量是否配置正确,如果配置的地址和安装的地址不一致,修改环境变量配置即可。如果还是不行,请往下看。(2)确认安装的软件是否正常,如果安装的adb不正常,正确安装即可。如果安装正确还是不能使用,请往下看。(3)如果配置正确可以使用,但是重启以后不能使用。使用管理员权限打开cmd检测是否可以使用,如果可以使用,基本问题就是:配置环境的时候配置的...

2018-03-23 10:27:35 3341 5

原创 Android遇到的那些问题

Android遇到的那些问题使用工具:Android studioNo resource found that matches the given name: attr ‘android:keyboardNavigationCluster’. when updati原因分析:这个问题的出现主要是因为编译版本与support-v7的版本不一致引起的,所以会出现找到资源的提示。 解...

2018-03-02 10:28:12 3897

原创 不为人知的IPC

1、开启多进程模式 创建多进程的方式,通过四大组件指定android:process;或者非常规的操作,通过JNI在native层去fork一个新的进程(非常常用方式)。这里暂不对fork方式多做分析。 (1)android:proces = “:remote” (2)android:proces = “com.grace.remote” 这两种方式有什么差别呢? (1)方式一的进程名为

2018-01-29 17:50:57 193

原创 浅尝MVVM

对于安卓开发,设计鼻祖MVC的思想,让Actvity承担的责任更重,造成xml功能弱小,Actvity累死。小型项目可以拿来试试,中大型项目不建议考虑,不然几千几万行的Actvity会让你发狂。于是,顺势而为,MVP诞生。将xml和Activty都划分到view层,model依然作为业务逻辑和实体模型的载体。这个时候Presenter横空出世。作为view和Model之间的交互。但是代码量大大

2017-06-20 15:14:46 352 3

原创 非法字符空字符的过滤

import java.util.regex.Matcher;import java.util.regex.Pattern;/** * * Description:字符串处理工具类 * * * @author dailei * @version V1.0.0 * @className StringUtils * @date 2017/5/23 */public cla

2017-05-23 17:46:59 477

原创 Android String.xml文件中空格字符的输入

在string.xml定义字符串的时候经常要用到空格, 直接用键盘敲的话不知道是几个空格,经常看错了,导致误删。如果用 来替代空格的话,就好很多。另外使用%1$s,%1$d可以在一个字符串里定义多个统配字符。

2016-12-28 10:56:34 706

原创 设计模式之——简单工厂模式

现在,有这样一个需求,你的领导告诉你说,写了一个计算器,能够进行加法计算。于是,你三下五除二分分钟搞定了,设计了美观的界面,看起来一切都是那么的完美。你按照计算的思路,读取变量a,读取变量b,读取+号,两个数相加,得出结论。过了一天,你的领导说,我需要再增加减法运算,于是,Ctrl+C,Ctrl+V,分分钟搞定了。又过了一天,你的领导说,增加乘法。。再过了几天,增加除法。。。。

2016-11-10 14:17:53 324 1

原创 Android Studio jar包冲突

利用如下的方式获取:dependencies { provided files(getLayoutLibPath()) provided files(getAndroidPath())}tasks.withType(JavaCompile) { options.encoding = "UTF-8" }def getLayoutLibPath() { return

2016-08-31 10:27:10 1788

原创 ContentProvider和ContentResolver的使用

创建ContentProviderpublic class FirstProvider extends ContentProvider{ public FirstProvider() { } @Override public int delete(Uri uri, String selection, String[] selectionArgs)

2016-08-12 15:42:59 515

原创 使用SQL语句操作SQLite数据库

public class MainActivity extends Activity{ private SQLiteDatabase db; private ListView listView; @Override protected void onCreate(Bundle savedInstanceState) { super.onC

2016-08-12 11:55:53 493

原创 读写其他应用的SharedPreferences

要读写其他应用的SharedPreferences,前提是该SharedPreferences饿应用程序指定相应的访问权限,例如指定了MODE_WORLD_READABLE,这表明该SharedPreferences可被其他应用程序读取,指定了MODE_WORLD_WRITABLE,这表明该SharedPreferences可被其他程序写入。public class MainActivity

2016-08-10 17:48:10 304

原创 SharePreference之记录应用的使用次数

public class MainActivity extends Activity{ private SharedPreferences sharedPreferences; private SharedPreferences.Editor editor; @Override protected void onCreate(Bundle savedInsta

2016-08-10 17:06:26 691

原创 Service和IntentService

IntentService是Service的子类,他不是普通的Service,比普通的Service增加了额外功能。Service本身存在两个问题:Service不会专门启动一条单独的线程,Service与它所在的应用处于同一个进程中。Service也不是一条新的线程,因此不应该在Service中直接处理耗时任务。如果开发者需要在Service中处理耗时任务,建议在Service中

2016-06-22 15:05:56 479 3

转载 Java ConcurrentModificationException异常原因和解决方法

Java ConcurrentModificationException异常原因和解决方法  在前面一篇文章中提到,对Vector、ArrayList在迭代的时候如果同时对其进行修改就会抛出java.util.ConcurrentModificationException异常。下面我们就来讨论以下这个异常出现的原因以及解决办法。  以下是本文目录大纲:  一.Concurr

2016-06-21 17:52:47 287

原创 Android Application类详解

每次应用程序启动的时候,应用程序的Application类都会保持实例化的状态、与Activity不同,配置改变并不会导致应用程序重启,通过扩展Application类,可以完成以下三项工作:对Android运行时广播的应用程序级时事件(如低内存)做出响应。在应用程序之间传递对象管理和维护多个应用程序组件使用资源如下:

2016-06-17 11:10:47 573 1

原创 Android manifest详解

1、versionCode使用versionCode属性可将当前应用程序版本定义为一个整数,每次版本迭代的时候,这个数字都会增加。使用versionCode可定义一个显示给用户的公共版本号。如图:2、installLocation通常使用installLocation属性,还可以指定是否允许为(或者首选)将应用程序安装到外部存储器(通常是SD卡)而不是内部存储器上。为此,可

2016-06-16 17:21:09 503

原创 可揉动的图片

public class MainActivity extends AppCompatActivity{ private Bitmap bitmap = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceS

2016-06-15 15:50:33 660 1

转载 [Android] 异步消息处理机制(Handler 、 Looper 、MessageQueue)源码解析

1、Handler的由来  当程序第一次启动的时候,Android会同时启动一条主线程( Main Thread)来负责处理与UI相关的事件,我们叫做UI线程。  Android的UI操作并不是线程安全的(出于性能优化考虑),意味着如果多个线程并发操作UI线程,可能导致线程安全问题。  为了解决Android应用多线程问题—Android平台只允许UI线程修改A

2016-06-15 10:32:40 519

转载 [Android] Android启动过程图解

Android手机开机执行过程图: 从开机到桌面的过程为:Bootloader ➪Kernel ➪Init进程 ➪ Zygote ➪ SystemServer ➪ ServiceManager ➪ Home Launcher  Android服务包括系统服务和应用服务,系统服务是指Android系统在启动过程就已经启动实现了的服务,对于系统服务又分为Java服务和本

2016-06-15 10:24:41 420

原创 图片切换马赛克动画效果

1、创建初始化界面的定义类public class AniPlayer { private RelativeLayout mBox = null; private Context mContext = null; public static final AniPlayer INST = new AniPlayer(); private boolean isPlaying = false

2016-06-15 10:13:24 1142

转载 Android内存优化大全(二)

*Android内存泄露*虽然JAVA有垃圾回收机制,但也存在内存泄露。如果我们一个程序中,已经不再使用某个对象,但是因为仍然有引用指向它,垃圾回收器就无法回收它,当然该对象占用的内存就无法被使用,这就造成了内存泄露。如果我们的java运行很久,而这种内存泄露不断的发生,最后就没内存可用了。当然java的,内存泄漏和C/C++是不一样的。如果java程序完全结束后,它所有的对象就都不可达了,系

2016-06-08 17:34:48 407 2

转载 Android 面试题总结之Android 进阶(一)

Android 面试题总结之Android 进阶一掌握什么是ViewView 坐标的基本概念View的生命周期View 的几个构造函数View 的几个重要方法自定义View简单理解View的绘制自定义View的分类自定义View的过程自定义ViewGroup自定义ViewGroup的过程彻底理解MeasureSpec三种模式问题总结掌握

2016-06-08 17:29:59 430

转载 Java设计模式

OOP三大基本特性封装封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的进行信息隐藏。继承继承是指这样一种能力,它可以使用现有的类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展。多态多态指一个类实例的相同方法在不同情形有不同的表现形式。具体来说就是不同实现类对公共接口有不同的实现方式,但这些操

2016-06-08 17:20:11 431 8

原创 明天端午放假了,你吃粽子了吗?

明天端午放假了,你吃粽子了吗?2016-6-8

2016-06-08 17:13:51 418 3

原创 自定义XML文件

1、创建xml文件内容,books.xml 正见-佛陀的证悟 遇见未知的自己 不一样的烟火2、显示的布局xml文件<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/too

2016-06-08 17:07:45 694

原创 不断渐变的背景色

1、创建显示的xml布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_

2016-06-08 15:20:15 458

原创 Animation动画

1、创建动画展示的xml布局<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layou

2016-06-08 11:58:12 330

android-support-v4.jar

2016-06-06

webpDemo.java

webp动图

2016-05-28

fragmentdemo

fragmentdemo

2016-05-28

java测试题

java练习题,轻松学习应用,轻松复习。

2013-06-24

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除