- 动态加载介绍 在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来到达快速发版的目的,也可以用来修复一些紧急BUG。 现在使用得比较广泛的动态加载技术的核心一般都是使用 ClassLoader ,后者能够加载程序外部的类(已编译好的),从而达到升级代码逻辑的目的。虽然动态加载的核心原理比较简单,但是根据... 动态加载介绍 在Android开发中采用动态加载技术,可以达到不安装新的APK就升级APP功能的目的,可以用来到达快速发版的目的,也可以用来修复一些紧急BUG。 现在使用得比较广泛的动态加载技术的核心一般都是使用 ClassLoader ,后者能够加载程序外部的类(已编译好的),从而达到升级代码逻辑的目的。虽然动态加载的核心原理比较简单,但是根据...
- 1 问题 1)由于TabLayout设置了可滑动Tab参数 app:tabMode="scrollable" 导致每个Tab之间的间距很大,但是UI设计图里面的字体之间的间距很小,我们改怎么解决? 2)修改TabLayout指示线的长度(非反射) 3)修改选中的字体大小并且加粗 &nb... 1 问题 1)由于TabLayout设置了可滑动Tab参数 app:tabMode="scrollable" 导致每个Tab之间的间距很大,但是UI设计图里面的字体之间的间距很小,我们改怎么解决? 2)修改TabLayout指示线的长度(非反射) 3)修改选中的字体大小并且加粗 &nb...
- 1、判断方法 public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configurat... 1、判断方法 public static boolean isTablet(Context context) { return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configurat...
- 1、问题 360奇酷手机很奇葩,默认安卓日志只打印等级W、E,现在我想打印所有等级日志 2、解决办法 1、在桌面点击拨号,在拨号盘输入“*20121220#”,进入工程模式; 2、点击“日志输出等级” 3、选择下面的选项 Log print enable 选 enable Java log level 选 LOGV C and C++... 1、问题 360奇酷手机很奇葩,默认安卓日志只打印等级W、E,现在我想打印所有等级日志 2、解决办法 1、在桌面点击拨号,在拨号盘输入“*20121220#”,进入工程模式; 2、点击“日志输出等级” 3、选择下面的选项 Log print enable 选 enable Java log level 选 LOGV C and C++...
- adb devices //列出所有的连接设备 adb connect <host>[:<port>] //通过tcp/ip连接,5555是默认端口 设备命令: adb push <local> <remote> //拷贝文件/目录到设备 adb pull <remote> [<local>]... adb devices //列出所有的连接设备 adb connect <host>[:<port>] //通过tcp/ip连接,5555是默认端口 设备命令: adb push <local> <remote> //拷贝文件/目录到设备 adb pull <remote> [<local>]...
- 在做一个蓝牙开关时候,用到了switch,记一下用法,其实跟Button是几乎一样的. 布局中: <Switch android:id="@+id/open" android:layout_width="wrap_content" android:layout_height="wrap_content" android:t... 在做一个蓝牙开关时候,用到了switch,记一下用法,其实跟Button是几乎一样的. 布局中: <Switch android:id="@+id/open" android:layout_width="wrap_content" android:layout_height="wrap_content" android:t...
- 1 、使用 HandlerThread handlerThread = new HandlerThread("handlerThread"); handlerThread.start(); //这里获取到HandlerThread的runloop MyHandler myHandler = new MyHandler(handlerThread.g... 1 、使用 HandlerThread handlerThread = new HandlerThread("handlerThread"); handlerThread.start(); //这里获取到HandlerThread的runloop MyHandler myHandler = new MyHandler(handlerThread.g...
- 1、Dalvik虚拟机架构和Java虚拟机的架构不同 1、Java虚拟机基于栈结构,需要频繁从栈读取或写入数据,这个过程需要更多的指令与内存访问次数,会消耗cpu时间 2、Dalvik虚拟机基于寄存器,数据访问通过寄存器直接传递,比栈方式快。 public class Hello { public int foo(int a, int b) { r... 1、Dalvik虚拟机架构和Java虚拟机的架构不同 1、Java虚拟机基于栈结构,需要频繁从栈读取或写入数据,这个过程需要更多的指令与内存访问次数,会消耗cpu时间 2、Dalvik虚拟机基于寄存器,数据访问通过寄存器直接传递,比栈方式快。 public class Hello { public int foo(int a, int b) { r...
- 1、ActivityLifecycleCallbacks的介绍 Application通过此接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理,注意是在Application里面,路径如下 android.app.Application.ActivityLifecycleCallbacks 要求API 14+ (Andr... 1、ActivityLifecycleCallbacks的介绍 Application通过此接口提供了一套回调方法,用于让开发者对Activity的生命周期事件进行集中处理,注意是在Application里面,路径如下 android.app.Application.ActivityLifecycleCallbacks 要求API 14+ (Andr...
- ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理... ANR (Application Not Responding) ANR定义:在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框。用户可以选择“等待”而让程序继续运行,也可以选择“强制关闭”。所以一个流畅的合理...
- 1、黑屏 /** * 判断是否黑屏 * @param c * @return */ public final static boolean isScreenLocked(Context c) { android.app.KeyguardManager mKeyguardManager = (KeyguardManager) c.getSystemSer... 1、黑屏 /** * 判断是否黑屏 * @param c * @return */ public final static boolean isScreenLocked(Context c) { android.app.KeyguardManager mKeyguardManager = (KeyguardManager) c.getSystemSer...
- 1、问题 实现下载apk的时候,抛出下面异常 java.net.SocketTimeoutException: timeout 2、分析 很明显是socket超时了,由于我的wifi网络比较慢,设置的超时时间可能短了。 在写入由 GetRequestStream 方法返回的流时,或在... 1、问题 实现下载apk的时候,抛出下面异常 java.net.SocketTimeoutException: timeout 2、分析 很明显是socket超时了,由于我的wifi网络比较慢,设置的超时时间可能短了。 在写入由 GetRequestStream 方法返回的流时,或在...
- FLAG_ACTIVITY_CLEAR_TASK :如果在调用Context.startActivity时传递这个标记,将会导致任何用来放置该activity的已经存在的task里面的已经存在 的activity先清空,然后该activity再在该task中启动,也就是说,这个新启动的activity变为了这个空tas的根activity.所有老的activity都结束... FLAG_ACTIVITY_CLEAR_TASK :如果在调用Context.startActivity时传递这个标记,将会导致任何用来放置该activity的已经存在的task里面的已经存在 的activity先清空,然后该activity再在该task中启动,也就是说,这个新启动的activity变为了这个空tas的根activity.所有老的activity都结束...
- 本文目录 什么是BitmapBitmap格式它是如何存储每个像素点的如何进行压缩防止OOM 创建BitmapBitmapFactory创建BitmapFactory.Options参数详解 直接通过Bitmap创建 什么是Bitmap Bitmap是绘图中非常重要的概念,在我们前面自定义的所有View中,他们的画布Canvas说到底都其实是Bit... 本文目录 什么是BitmapBitmap格式它是如何存储每个像素点的如何进行压缩防止OOM 创建BitmapBitmapFactory创建BitmapFactory.Options参数详解 直接通过Bitmap创建 什么是Bitmap Bitmap是绘图中非常重要的概念,在我们前面自定义的所有View中,他们的画布Canvas说到底都其实是Bit...
- 用SharedPreferences存储一些常用的设置信息很方便,但是我们知道SharedPreferences只能存储一些简单的类型 如何用SharedPreferences来存储一些复杂的对象?下面以map为例,看看SharedPreferences 存储复杂对象的方法 如果想用SharedPreferences存取复杂的数据类型,就需要对这... 用SharedPreferences存储一些常用的设置信息很方便,但是我们知道SharedPreferences只能存储一些简单的类型 如何用SharedPreferences来存储一些复杂的对象?下面以map为例,看看SharedPreferences 存储复杂对象的方法 如果想用SharedPreferences存取复杂的数据类型,就需要对这...
上滑加载中
推荐直播
-
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day1)
2025/03/29 周六 09:00-18:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
基于开源鸿蒙+海思星闪开发板:嵌入式系统开发实战(Day2)
2025/03/30 周日 09:00-12:00
华为开发者布道师
本次为期两天的课程将深入讲解OpenHarmony操作系统及其与星闪技术的结合应用,涵盖WS63E星闪开发板的详细介绍、“OpenHarmony+星闪”的创新实践、实验环境搭建以及编写首个“Hello World”程序等内容,旨在帮助学员全面掌握相关技术并进行实际操作
回顾中 -
从AI基础到昇腾:大模型初探、DeepSeek解析与昇腾入门
2025/04/02 周三 16:00-17:30
不易 / 华为云学堂技术讲师
昇腾是华为研发的AI芯片,其具有哪些能力?我们如何基于其进行开发?本期直播将从AI以及大模型基础知识开始,介绍人工智能核心概念、昇腾AI基础软硬件平台以及昇腾专区,旨在为零基础或入门级学习者搭建从AI基础知识到昇腾技术的完整学习路径。
回顾中
热门标签