- 博客(27)
- 收藏
- 关注
原创 Android Studio集成讯飞SDK过程中在配置Project的时候有感
demo01不需要在app/build.gradle写任何配置,但需要在app/src/main中新建一个文件夹。而且a/a/M文件没放到一起。demo02需要在app/build.gradle写一条配置,不用新建文件夹,而且a/a/M文件都放在一起了。
2025-02-11 01:40:44
1011
1
原创 Android性能优化—— 内存优化
如果设置了此选项,那么采用 Options 对象的解码方法会在生成目标 Bitmap 时尝试复用 inBitmap,这意味着 inBitmap 的内存得到了重复使用,从而提高了性能,同时移除了内存分配和取消分配。每个等级每个像素所占用的字节是不一样的,所存储的色彩值也不同,同一张 100 像素的图片,ARGB_8888 占用了 400 字节,RGB_565 才占用 200 字节。内存泄漏会导致无法回收的内存越来越多,可用的内存越来越少,直到应用无更多可用的内存申请,严重的甚至出现 OOM。
2024-12-30 20:42:44
504
原创 Android --- 异步操作
固定数量的线程池 newFixedThreadPool():内部有个任务阻塞队列,假设线程池里有2个线程,提交了4个任务,那么后两个任务就放在任务阻塞队列了,即使前2个任务 sleep 或者堵塞了,也不会执行后两个任务,除非前2个任务有执行完的。动态线程池 newCachedThreadPool():根据需求创建新线程的,需求多时,创建的就多,需求少时,JVM 自己会慢慢的释放掉多余的线程。线程的创建和销毁由线程池来维护,实现了线程的复用,从而减少了线程创建和销毁的开销。
2024-12-30 20:40:59
454
原创 Android进阶——性能优化之多线程总结及简单应用
这也是组件被系统调用的时候不宜长时间运行或者阻塞操作(如网络操作、IO操作、大数据量的计算等耗时操作)的根本原因,因为这样导致阻塞进程中的其他组件,进而导致ANR,所以必须把这类操作从主线程中单独分离出来。总之,我们的处理原则就是所有可能耗时的操作都放到其他线程中处理,因为Activity的生命周期方法、事件处理方法等Activity基类中以on为前缀的方法都是在主线程中被回调的,一般而论,Activity的onCreate、onStart、onResume方法执行的时间直接决定了你的应用界面打开的时间。
2024-12-30 20:39:34
152
原创 微信小程序引入腾讯地图图解
3.在小程序管理后台 -> 开发 -> 开发管理 -> 开发设置 -> “服务器域名” 中设置request合法域名,添加https://apis.map.qq.com。7.下载后引入qqmap-wx-jssdk.js文件到components文件夹中。注意此处的开发者ID-小程序ID在下面注册地图key时要用到,我下面还会再次提醒。1.登录腾讯位置服务网站腾讯位置服务 - 立足生态,连接未来 (qq.com)4.点击创建应用,随意输入,点击创建就创建完成了,然后点击添加key。// 实例化API核心类。
2024-12-30 20:36:47
600
原创 微信开发之两天快速开发一个自己的微信小程序
(2)善于搜集精美的小组件: “我们不生产代码,我们只是代码的搬运工”,善于找到想要的组件并把他们巧妙优雅的组装成一个大项目,也算是程序员一项基本技能了。本项目中用到了 和风天气api,腾讯地图api,百度地图api,豆瓣电影api,聚合头条新闻api等,具体用法可以看各自官网的接口文档哦,很详细的。(3)接下来在整个page({})中,第一个data,就是本页面组件的内部数据,会渲染到该页面的wxml文件中,类似于vue、react哦~(2)比如,我们要获取豆瓣电影的时候,我们需要调用豆瓣的api;
2024-12-30 20:35:31
1047
1
原创 微信小程序开发 小白入门篇
安卓版的微信 App 是不能在i0s 环境下运行的,所以Android 是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的!⭕注意: sitemap 的索引提示是默认开启的,如需要关闭 sitemap 的索引提示,可在小程序项目配置文件project.config.json 的 setting 中配置字段 checkSiteMap 为 false。小程序中的每一个页面,可以使用 .son 文件来对本页面的窗口外观进行配置,页面中的配置项会覆盖app.json 的 window 中相同的配置项。
2024-12-30 20:02:50
301
原创 Android 播放视频的四种方法
原文链接:https://blog.csdn.net/u011403718/article/details/48287281。3、调用VideoView的start()、stop()、psuse()方法来控制视频的播放。case R.id.button3: //播放。case R.id.button5: //暂停。
2024-12-30 20:01:24
1633
原创 Android接入文言一心
文心一言是百度打造出来的人工智能大语言模型,具备跨模态、跨语言的深度语义理解与生成能力,文心一言有五大能力,文学创作、商业文案创作、数理逻辑推算、中文理解、多模态生成,其在搜索问答、内容创作生成、智能办公等众多领域都有更广阔的想象空间。根据第1步获取的 API Key 和 Secret Key ,调用获取access_token接口获取 access_token ,通过 access_token 鉴权调用者身份。根据步骤一获取的API Key、Secret Key,获取access_token。
2024-12-24 23:58:32
1371
原创 Android的六大布局
约束布局是一种强大而灵活的布局方式,它基于视图之间的约束关系来实现布局效果。约束布局适用于需要复杂布局或动画效果的情况。表格布局是一种以表格形式排列子视图的布局方式,类似于HTML中的表格布局。网格布局是一种将子视图按照网格形式排列的布局方式,类似于表格布局。相对布局是一种基于相对位置关系的布局方式,您可以通过指定子视图之间的相对位置来实现灵活的布局效果。帧布局是一种将子视图堆叠在一起的布局方式,每个子视图都会覆盖在前一个视图之上。上面的代码创建了一个垂直方向的线性布局,其中包含一个文本视图和一个按钮。
2024-12-24 23:56:30
532
原创 OKHttp如何使用?
OKHttp是处理网络请求的开源框架,Andorid当前最火热的网络框架Retrofit的底层也是OKHttp,用于替换HttpUrlConnection和Apache HttpClient(API23 6.0已经移除)。概况起来说OKHttp是一款优秀HTTP框架,它支持GET和POST请求,支持Http的文件上传和下载,支持加载图片,支持下载文件透明的GZIP压缩,支持响应缓存避免重复的网络请求,支持使用连接池来降低响应延迟的问题。OKHttp的优点:1.支持HTTP2/SPDY。
2024-12-24 23:52:47
1315
原创 Retrofit是什么?它的原理是?
在执行上面代码的时候,它会走代理设计模式中的InvocationHandler.invoke方法,也就是所有的网络请求在创建具体网络请求call的时候,都会走InvocationHandler.invoke方法,而从我们可以在此方法里进行各种行为的统一处理,比如:接口的统一配置,也就是注解的解析和网络请求参数的拼接;我们在使用Retrofit的时候,对每一个网络请求的产生都必须先调用create函数,也就是意味着,我们的请求都是通过代理类来处理的,而代理类具体的代理行为是发生在哪里呢?
2024-12-24 23:51:15
973
原创 个性化推荐算法
答案:推荐系统可以使用多种不同的推荐算法,如基于内容的推荐算法、基于行为的推荐算法、基于协同过滤的推荐算法等,来提供多样化的推荐。基于协同过滤的混合推荐算法(Collaborative Filtering Hybrid Recommendation):将基于协同过滤的推荐算法和基于内容的推荐算法或基于行为的推荐算法结合起来,以提高推荐质量。在本节中,我们将详细介绍一些核心推荐算法的原理、特点和应用。这些算法包括基于内容的推荐算法、基于行为的推荐算法、基于协同过滤的推荐算法、混合推荐算法和深度学习推荐算法。
2024-12-24 23:42:30
572
原创 Android集成百度地图的实战
对于定位服务的实现,有几种不同的方法,如使用GPS定位、网络定位等。随着移动互联网的发展,定位服务已成为大多数应用不可或缺的功能之一,特别是在地图应用中,它能够帮助用户精确地获取自己当前的位置信息。而MyLocationListener则是专为地图定位图标的移动而设计,能够提供更为丰富的地图相关位置信息,如地图上的定位图标、方向、是否跟随用户移动等。在上述代码中, onMyLocationChange 方法是位置信息发生变化时的回调,通过传入的 MyLocation 对象,可以获得当前位置的经纬度等信息。
2024-12-23 23:03:36
1230
原创 人工智能简述
深度学习是机器学习领域中的一个重要研究方向,它的核心思想是构建多层次的神经网络模型,实现层次化的表示学习来提取和表达数据中的特征和模式,进而实现回归、分类或排序等目的。神经网络是深度学习的基础模型,是深度学习得以实现的重要工具,它模仿人脑的神经元网络来处理信息,通过连接不同层级的神经元来形成复杂的网络结构。本文介绍了人工智能特别是机器学习的一些基础知识,机器学习是人工智能的一个分支,而借助于机器学习中的神经网络,通过多层神经网络进行知识学习的深度学习是机器学习领域中的一个重要研究方向。
2024-12-23 23:01:53
1710
原创 Android Speech使用指南 - 简化语音识别与文字转语音
无论您是开发一个语音助手、语音控制的应用,还是需要为应用添加语音反馈,Android Speech都是一个值得考虑的强大工具。Log.i("speech", "识别结果: " + result);Log.i("speech", "语音识别已开始");Log.e("speech", "该设备不支持语音识别!Log.i("speech", "语音播放开始");Log.i("speech", "语音播放完成");Log.i("speech", "语音播放出错");// 其他回调方法...
2024-12-23 22:57:51
1001
原创 Android端调用 深度学习模型实现CNN分类
总结以上提到的方式都有优缺点,可以根据自己的项目定位和需求进行选择。如果模型不大,tiny-cnn 的 android版本还是很适合的。当然,如果论未来的话,我个人比较推崇tensorflow,毕竟google是干爹。还有就是关注caffe2go开源情况。总的来说,移动平台必然是以后深度学习算法的一个广泛的应用平台。项目改进本人对tiny-cnn移植的工作,未来的改进,大概就是提供对更多的层的支持,以及使用opencl来进行gpu加速。整个项目,将改成makefile编译的形式。
2024-12-23 22:54:04
905
原创 自然语言处理NLP基本概念
通过一系列预处理步骤,原始文本数据被转换为结构化的、易于分析的形式,为后续的特征提取和模型训练奠定了坚实的基础。通过上述特征提取方法和特征工程技术,可以从文本数据中提取出丰富的特征,为后续的模型训练和预测提供坚实的基础。文本预处理是自然语言处理(NLP)的基础步骤,其主要目的是将原始的文本数据转换为易于分析和建模的形式。停用词是指在文本中频繁出现但对文本分析无实际意义的词语,如中文中的“的”、“了”、“在”,英文中的“the”、“is”、“at”等。去除停用词的目的是减少噪音,提高模型的性能。
2024-12-23 22:50:23
468
原创 通过AppbarLayout的监听器实现CollapsingToolbarLayout和Toolbar的动态效果
具体代码如上,其中有注解解释,动态效果的实现就是setset方法中的appBarLayout.addOnOffsetChangedListener监听器来实现的。),使得CollapsingToolbarLayout的颜色由。,这个动态效果是用的AppBarLayout的滑动监听器。,而且在Toolbar中的一个买吃宠物的。如图,通过向下滑动界面(实际上是滑动的。这是toolbar的两个小按钮的效果。下面我来展示实现的原理。
2024-05-07 21:54:22
843
原创 CoordinatorLayout与AppbarLayout和NestedScrollView
CoordinatorLayout布局中的AppbarLayout与NestedScrollView是如何实现滑动NestedScrollView时,或者滑动AppbarLayout时,AppbarLayout可以一直保持在NestedScrollView之上的?CoordinatorLayout内的两个view,可以设置它们之间受到滑动Listener的影响。而AppbarLayout与NestedScrollView都默认实现了,当其中一方向上或向下滑动时,另一个一直要处于其上方或下方。
2024-04-27 19:56:32
289
原创 Android中在build.gradle中引入第三方库或组件的依赖却无法使用的错误
AndroidX最初是作为旧Support Library的增强版本和替代品发布的,它为Android开发者提供更好的工具和功能,帮助他们更好地构建现代化的应用。4. **兼容性问题**:随着新的Android版本发布,使用Support Library可能会导致与新系统版本的兼容性问题。1. **功能受限**:由于Support Library已经停止更新,新的Android功能和改进可能无法在Support Library中获得,因此您可能会错过一些新功能。建议使用AndroidX以确保应用的安全性。
2024-04-27 16:17:10
861
原创 Android的View控件的onClick属性(实现简单的监听器机制,来指定点击事件处理方法)
虽然比较方便简单,但是`android:onClick`属性仅支持一个方法名,因此如果需要处理多个点击事件或更复杂的逻辑,请使用`setOnClickListener()`方法来设置监听器并编写相应的代码逻辑。`android:onClick`属性通常用于任何可以被点击的`View`,如`Button`、`ImageView`、`TextView`、`CheckBox`等。任何继承自`View`类的控件都可以使用`android:onClick`属性来指定点击事件处理方法。1. Button:按钮。
2024-04-27 12:22:38
647
2
原创 MyBatis-plus入门使用(一)
Mybatis-plus是Mybatis的增强工具,在mybatis的基础上只做增强,不做改变,原来的mybatis该怎么写还怎么写,引入mybatis-plus不会影响原来的mybatis。其中要注意JDK和Java版本的匹配,mybatis-plus对版本的要求比较严格。
2024-04-24 09:24:09
283
原创 Android的theme主题的用法
主题可以控制应用程序的颜色、字体、图标、布局等各种外观方面的表现,使应用程序或系统具有特定的视觉风格和风格统一性。安卓的默认theme有两个,位于res/values/themes目录内,我们可以新建自定义的theme,放到values目录内即可。以上是对一个新建的Dialog进行theme的设置,说明values目录内有一个自定义的DialogTheme文件。以上是一个Dialog的theme的设置,通过这些设置还可以实现Activity的页面上方的状态栏的设置。
2024-04-23 21:46:20
1154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人