![](https://img-blog.csdnimg.cn/20190918140129601.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Android
文章平均质量分 55
Android 基础知识
Yimi-依米
这个作者很懒,什么都没留下…
展开
-
安卓中的图片压缩
根据实际需求,开发者可以自定义压缩算法,比如通过调整图片的像素值来减小文件大小。使用在线服务或网页工具来压缩图片,这通常适用于用户需要在网页上操作的情况。根据指定的宽度和高度比例来调整图片的尺寸,然后再进行质量压缩。Matisse是一个图片选择库,它也提供了图片压缩的功能。开发者可以根据自己的需求选择合适的方法或库来实现图片压缩。方法实现,其中可以设置压缩质量(0-100)。通过降低图片的质量来减小文件大小。是一个计算缩放比例的方法。等第三方库来简化压缩过程。原创 2024-05-29 19:08:44 · 922 阅读 · 0 评论 -
Jpg与png图片区别
选择哪种格式取决于你的具体需求,包括图像质量、文件大小、透明度需求和是否需要动画等。Jpg与png图片有什么区别?原创 2024-05-29 18:54:18 · 404 阅读 · 0 评论 -
安卓自定义UI组件开发流程
开发安卓自定义UI组件的流程大致可以分为以下几个步骤:确定需求和设计:创建自定义组件类:定义自定义属性:处理自定义属性:测量和布局:绘制组件:处理交互:优化性能:测试组件:文档和示例:集成到项目中:通过以上步骤,你可以创建出功能丰富、外观独特的自定义UI组件,以满足你的应用开发需求。要自己绘制 UI 组件,你需要了解 Android 中自定义 View 的机制。以下是实现自定义绘制 UI 组件的基本步骤:创建自定义 View 类:创建一个新的 Java 类,继承自 或其他相关的基类(如 用于复杂动画或原创 2024-05-29 13:36:04 · 1035 阅读 · 1 评论 -
在音乐播放器中Android服务的实现
Service是一种在后台运行的组件,它可以在不与用户交互的情况下执行长时间运行的任务,并且不会被系统销毁。可以使用Android Service来实现音乐播放器。原创 2024-04-29 23:10:35 · 172 阅读 · 0 评论 -
为什么匿名内部类的变量需要用final呢
在JDK8之前,如果我们在匿名内部类中需要访问局部变量,那么这个局部变量必须用final修饰符修饰。因为在匿名内部类中访问的局部变量,实际上是外部方法中的局部变量的一个副本,如果不加final修饰符,那么编译器就会认为这是一个可以修改的副本,从而引发错误。而在JDK8之后,匿名内部类可以直接访问外部方法中的局部变量,不需要再加上final修饰符。原创 2024-04-29 11:12:47 · 182 阅读 · 1 评论 -
Android 跨进程通信
Android中常用的跨进程通信方法有以下几种:Intent、Binder、AIDL、Messenger、ContentProvider。原创 2024-04-24 16:41:00 · 565 阅读 · 3 评论 -
Android 应用启动过程
启动Activity的生命周期方法:当应用启动后,系统会依次调用启动的Activity的生命周期方法,包括onCreate()、onStart()、onResume()。Zygote进程是专门负责孵化新的应用进程的进程,它是所有应用进程的“父进程”。应用进程初始化:新的应用进程在创建后,会进行一系列的初始化工作,包括应用程序的类加载、资源加载、创建Application对象等。启动器加载:启动器根据应用程序的包名,在设备上查找对应的应用程序,并加载应用程序的数据(包括应用程序的图标、名称等)。原创 2024-04-09 15:15:19 · 966 阅读 · 2 评论 -
Android 内存泄露与解决方案
内存泄漏是指程序在申请内存后,无法被释放或归还给系统的现象。在Android中,内存泄漏导致的后果会使得应用Crash。常见的内存泄漏场景有:全局集合类强引用没清理会造成内存泄漏(特别是static修饰的集合)、静态成员变量、单例类、非静态内部类/匿名内部类等。解决方案包括:在单例中,使用弱引用、使用HandlerThread、使用AsyncTask、使用WeakHashMap等。原创 2024-04-09 10:41:05 · 666 阅读 · 0 评论 -
Android与RN远程过程调用的原理
Android与RN远程过程调用的原理是通过通信协议进行远程过程调用。RPC(Remote Procedure Call)是分布式系统常见的一种通信方式,从跨进程到跨物理机已经有几十年历史。在React Native中,通信机制是一个C++实现的桥,打通了Java和JS,实现了两者的相互调用。原创 2024-04-07 20:00:02 · 306 阅读 · 0 评论 -
Android 如何通过屏幕大小来适配不同大小的图片
可以使用Android中的dp(密度无关像素)单位来设置不同屏幕密度下的图片大小。dp是Android中的一种尺寸单位,它与屏幕密度无关,只与字体大小有关。在开发过程中,可以使用dp来设置布局和控件的大小,以便在不同的屏幕密度下保持一致的外观。例如,如果想在mdpi(每英寸160个像素)屏幕上显示一张500x500像素的图片,则可以将该图片的大小设置为500dp x 500dp。然后,在hdpi(每英寸240个像素)屏幕上,该图片的大小将变为750dp x 750dp。原创 2024-04-07 19:56:52 · 546 阅读 · 0 评论 -
React Native调用Android的原生功能
这个例子中,我们创建了一个名为 ToastExample 的模块,并在其中定义了一个 show 方法,该方法通过调用 Android 的 Toast 功能来显示一条消息。这个接口会被编译成 Java 或 Kotlin 代码,并在 Android 项目的 android/app/src/main/java// 目录下的相应 Module 中实现。React Native 通过 JavaScript 接口与原生代码通信,这是通过名为 Bridge 的机制实现的。实现原生功能的具体代码。原创 2024-04-06 22:06:43 · 685 阅读 · 1 评论 -
RecyclerView实现View复用的原理
在这个例子中,MyAdapter扩展了RecyclerView.Adapter并定义了一个内部类MyViewHolder,它持有对TextView的引用。onCreateViewHolder()方法负责创建新的视图,onBindViewHolder()方法将数据绑定到视图上。当RecyclerView需要展示一个新的项时,它会调用Adapter的onCreateViewHolder()方法来创建一个新的ViewHolder。它是一个容器,可以利用回收和重用的视图元素来展示数据。原创 2024-04-06 21:50:44 · 170 阅读 · 0 评论 -
Android 的网络加载
当用户在应用程序中输入网址或关键字时,应用程序会发起网络请求。详细一点可以参考网络请求步骤(用户输入一个网址到网页最终展现到用户面前)大致流程总结如下:在客户端浏览器中输入网址URL。发送到DNS(域名服务器)获得域名对应的WEB服务器的IP地址。客户端浏览器与WEB服务器建立TCP(传输控制协议)连接。客户端浏览器向对应IP地址的WEB服务器发送相应的HTTP或HTTPS请求。WEB服务器响应请求,返回指定的URL数据或错误信息;如果设定重定向,则重定向到新的URL地址。原创 2024-04-02 17:42:01 · 1497 阅读 · 0 评论 -
InputStream、outputStream文件读写
可以使用OutputStream将InputStream中的数据写入到文件中。InputStream获取到数据后,用outputStream如何读取?原创 2024-04-02 16:13:13 · 214 阅读 · 0 评论 -
Android的图片加载框架
在Android开发中,有许多图像加载框架可供选择。图片加载框架是有一个总体套路的,我们自己也可以通过这个流程实现一个图片框架。图片加载:封装、解析、下载、解码、变换、缓存、显示等。大型工程需考虑图片种类、图片使用率、加载性能、缓存机制、高效、简便的完成图片渲染任务。图片资源类型:jpeg、jpg、png、Webp、AWebp、Lottie、SVGA、NinePatch(点9)、AVD、File(透明视频)存放位置选择:当资源大小超过10Kb时,存放在NOS上;原创 2024-04-02 13:36:40 · 1423 阅读 · 2 评论 -
Android学习笔记——获取SHA1证书指纹
当我们需要用到高德地图等三方技术时,需要我们提供SHA1用以注册。打开Android studio左下角的Terminal(或者你使用cmd控制台也行),进入keytool所在的对应路径,输入keytool指令,如图即可获得证书指纹。代码里路径改为自己对应的。或者也可以参考高德地图给的参考手册。......原创 2022-06-07 17:26:41 · 1494 阅读 · 1 评论 -
Android学习笔记——签名应用并打包发布
当想要把做的安卓app发给别人安装时,需要签名应用并打包发布。首先需要生成jks文件。原创 2022-06-07 17:17:49 · 785 阅读 · 0 评论 -
Android学习笔记——Keystore生成
Android平台打包发布apk应用,需要使用数字证书(.keystore文件)进行签名,用于表明开发者身份,可以使用Android studio安装包下的keytool工具自己生成。可以打开Android studio底部的Terminal,使用keytool命令生成证书。testalias是证书别名,可修改为自己想设置的字符,建议使用英文字母和数字yimi.keystore是证书文件名称,可修改为自己想设置的文件名称,也可以指定完整文件路径36500是证书的有效期,表示100年有效期,单位天,建原创 2022-06-07 16:47:13 · 1216 阅读 · 0 评论 -
Greendao查询前n条记录
Greendao查前n项,InitApplication是你自己写好的初始化GreenDao的ApplicationInitApplication.getDaoSession().getBannerDao().queryBuilder().limit(n).list()原创 2022-02-24 13:22:48 · 640 阅读 · 0 评论 -
Android查看数据库“*.db“内容
Android查看数据库“*.db"内容(包括本地文件、真机、虚拟机的方法)使用android自带的SQLite,或者第三方的GreenDao等技术操作数据库时,查看内容有以下方案。法一查看非虚拟机内的本地数据库文件,可以下载查看数据库的插件。File>Settings>Plugins>搜索”Database Navigator”>Install>重启Ansroidstudio>左侧会出现“DB Browser“>点击绿色加号,设置你要看的"*.db”文原创 2022-02-23 19:21:22 · 4988 阅读 · 0 评论 -
Android调试笔记——IOException java.io.IOException: Cleartext HTTP traffic to * not permitted
报错加载网络图片时报的以下错误,网络图片没法正常显示。IOException java.io.IOException: Cleartext HTTP traffic to * not permitted解决根据网上查到的原因:从 Android 9(API 级别28)开始,明文支持默认是禁用的。把网络图片的url协议头的http改为https即可。...原创 2022-02-20 10:48:55 · 2586 阅读 · 0 评论 -
Android调试笔记——PocketM开发
问题:高德地图白屏(有“高德地图”字样,但地图不显示)。解决:先查看调试logcat有无报错码;查看jar包与so包是否配置正确(jiniLibs下有armeabi目录及so文件),若不正确则检查build.gradle文件。 问题:使用外部Module引入摇杆控件效果。解决:在网上参考Android自定义摇杆。 其中用的KqwRockerLibrary作为Module库,先不要手...原创 2021-04-23 09:50:21 · 140 阅读 · 0 评论 -
好玩儿的——磕盐汪领地
嘟嘟嘟——这里是磕盐汪领地!一款严禁情侣使用的appヾ(≧O≦)〃嗷~故事源于关于“一起线上看电影的就是情侣?”的诡异言论,于是创造一款单身汪们的专用app,为单身汪们正名,从此一起看电影才不会是情侣的特权呢,嗯哼╭(╯^╰)╮本app内置实时巡逻小警察,随时观测用户状态严禁情侣使用Ծ‸ Ծ私の世界は私が定義します!磕盐汪领地github链接...原创 2021-03-31 10:10:12 · 166 阅读 · 0 评论 -
Android调试笔记——关于新安装的Android Studio
最近新安装的Android Studio新建的工程报错可能是新版本的Android studio独有的问题吧报错如下:ERROR: Could not install Gradle distribution from ‘http://services.gradle.org/distributions/gradle-4.1.2-all.zip’.或者Could not GET‘https://dl.google.com/dl/android/maven2/com/android/tools原创 2021-03-02 17:01:52 · 251 阅读 · 0 评论 -
将Unity项目作为引用库导入eclipse
从Unity到eclipse本文主要讲从Unity导出为android项目,再导入eclipse,作为其他android项目的引用库,从而实现app中的3d效果。原创 2017-02-19 15:35:43 · 2677 阅读 · 0 评论 -
Android调试笔记——引用unity的库后,高德地图变成白屏。
出现bug:引用unity的库后,本可以显示的高德地图变成白屏。 即高德地图FAQ中的Android 工程/APK找不到 so 文件 通过解压APK查看表象 除了通过日志,提供一个简单粗暴的方式查看,是不是有这个问题 1)找到出问题的APK,如demo.apk 2)修改后缀为demo.zip 3)解压zip 4)查看libs目录 如果里面有处理armeabi原创 2017-02-14 19:23:18 · 1353 阅读 · 0 评论 -
Android调试笔记——Installation error
Android调试笔记用eclipse写android运行后报以下错误: [2016-12-07 15:36:00 - CompusForest] Installation error: INSTALL_FAILED_USER_RESTRICTED原创 2016-12-07 16:01:19 · 881 阅读 · 0 评论 -
Android——资源名称命名及替换
资源名称命名Android里res中的资源名称命名一般可用小写字母、下划线组合命名,切记不要用大写字母、括号等命名。比如,若命名为“Nine-Patch_Test.9.png”则报错:res\drawable-hdpi-v4\Nine-Patch_Test.9.png: Invalid file name: must contain可改为“nine_patch_text.9.p原创 2016-08-10 09:02:59 · 1029 阅读 · 0 评论 -
Android调试笔记——FATAL EXCEPTION: main...have you declared this activity in your AndroidManifest.xml?
最近在写Android的时候遇到个问题,某一Activity明明在AndroidManifest里注册过,运行时却仍无法进入该活动。报错如下:09-04 00:00:18.472: E/AndroidRuntime(1052): FATAL EXCEPTION: main09-04 00:00:18.472: E/AndroidRuntime(1052): Process: com.e原创 2016-09-04 07:49:48 · 27034 阅读 · 2 评论 -
Android——四种基本布局
1.线性布局LinearLayout<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation=原创 2016-08-09 12:28:37 · 536 阅读 · 0 评论 -
Android学习笔记——Http通信
Android学习笔记——Http通信此篇学习笔记主要内容:使用WebView控件加载网页使用ImageView控件加载网络图片原创 2017-02-01 18:36:27 · 285 阅读 · 0 评论 -
Android学习笔记——BroadcastReceiver
BroadcastReceiver的静态注册和动态注册注册广播的方式1.动态注册(在*.java代码中注册) 2.静态注册(在AndroidManifest.xml中注册receiver)原创 2017-04-03 11:46:39 · 354 阅读 · 0 评论 -
Android学习笔记——文件存储
Android学习笔记——文件存储实现在编辑框输入信息,当destory该activity时,把用户输入的内容以文件形式储存起来,当再次打开该应用时,读取文件,之前输入过的内容就会重新显示出来 。原创 2017-04-03 19:14:55 · 452 阅读 · 0 评论 -
Android学习笔记——SharedPreferences存储
Android学习笔记——SharedPreferences存储按下"Save data"就会使用SharedPreferences.Editor把数据存储起来,可以在DDMS的File Explorer下进入/data/data/[packagename]/shared_prefs/目录下可以看到生成了data.xml的文件原创 2017-04-04 12:56:28 · 342 阅读 · 0 评论 -
Android学习笔记——蓝牙入门
Android学习笔记之蓝牙入门蓝牙概述 蓝牙是一种支持设备间短距离通信的无线电技术。 支持移动电话、笔记本电脑、无线耳机、智能小车等设备之间进行信息的交换。Android支持的蓝牙协议栈。BluetoothAdapter类。权限。蓝牙模块的Mac地址获取。原创 2017-08-05 17:33:03 · 676 阅读 · 0 评论 -
Android实验——实验1 用户界面:线性布局
实验1 用户界面:线性布局一、实验目的1、理解Android布局管理器及其属性,掌握线性布局用户界面(UI)的设计方法。 2、掌握在XML文件和Java代码中访问字符串、数组、颜色和尺寸等资源的方法。 3、掌握在Java代码中获取UI控件对象及事件处理的方法。二、实验要求设计并实现一个电子邮件APP的模拟程序,完成用户登录和发送邮件的功能,具体要求如下: 1. 定义字...原创 2018-02-28 11:43:12 · 8591 阅读 · 1 评论 -
Android学习笔记——制作圆形用户头像
制作圆形用户头像步骤添加圆形图片控件的依赖 在Moudle的build.gradle中添加如下代码:dependencies { compile 'com.makeramen:roundedimageview:2.2.1'}在需要使用圆形控件的布局文件中,设置命名空间app:xmlns:app="http://schemas.android.com/ap...转载 2018-03-16 12:44:50 · 421 阅读 · 0 评论 -
Android调试笔记——telnet能连上服务器,应用socket却连不上
问题:在本地用打开cmd用 telnet [IP地址] [端口号]的方式能连上服务器,写的APP的程序里socket却连不上。解决: 较高API版本的Android中,连接socket要写在子线程中,不能直接写在主线程里。new Thread(new Runnable(){ @Override public void run(...原创 2018-03-11 18:13:27 · 3009 阅读 · 0 评论 -
Android调试笔记——操作数据库,调用createStatement方法报空指针错误
问题:操作数据库,调用createStatement方法报空指针错误。 解决:检查数据库驱动是否正确安装。 第一步:把数据库相关驱动放到libs文件夹内。 第二步:在build.gradle(Module:app)中要添加数据库相关文件的配置。 sourceSets.main.jniLibs.srcDirs = [‘libs’] compile files(‘lib...原创 2018-04-29 16:03:31 · 1492 阅读 · 0 评论