TGITCIC
一个始终站在技术前沿的人,喜欢传播最先进的技术和理念。2023年8月落地过全国最早的AI Agent-智能零售导购,在RAG概念出来前就已经落地了2个大中型RAG类企业级项目。国内最早一批AI应用的践行者。本人的座右铭是:帮助企业认识AI,赋能企业。
展开
-
Android入门第65天-mvvm模式下的retrofit2+okhttp3+rxjava
android app开发中伴随着大量的http restful请求,用传统的okhttp虽然可以同样解决功能开发、业务逻辑开发。但是okhttp请求调用中充斥着大量的、重复、冗余代码的书写。当开发者们介于:提高生产力、解耦、充分保证质量和效率的几者取舍时出现了retrofit+okhttp3+rxjava的组合应用潮流。本篇就以一个生产实例带领大家充分了解、学习这一组合的应用模式和方法同时为后续android aop篇章预埋基础。原创 2023-02-23 15:02:11 · 988 阅读 · 1 评论 -
Android入门第70天-调用手机摄像头拍照的最全讲解
手机摄像头应用广泛,从拍照到识图、扫码,无所不包。然而,网上教程却少有完整实现高清拍照并后续处理的指南。本文揭示了Android系统中完整的摄像头拍照和后续处理流程,填补了这一空白领域。让我们深入了解手机摄像头背后的技术,掌握在Android系统中拍照和处理照片的全过程。让手机摄像头真正发挥其潜力,为我们带来更多的便利和创造力。原创 2024-06-21 17:19:03 · 290 阅读 · 0 评论 -
Android入门第69天-AndroidStudio中的Gradle使用国内镜像最强教程
本篇教程告诉了大家如何彻底解决Android Studio的初始化、重编译时经常碰到的重连、断连问题。可谓最全、最强Android Studio连接国内镜像教程。含有现有网上任何一篇教程都没有提及过的知识和内容。要想彻底摆脱Android Studio Gradle连接超时问题请看此文。让你的Android Studio“飞”起来吧!原创 2024-06-15 17:42:30 · 3377 阅读 · 2 评论 -
Android入门第68天-自动更新/升级怎么做(生产级实例)
当科技与便利相融合,Android自动更新/升级显然是卓越的选择。这篇博文详解了如何利用智能机制,使你的Android设备永葆更新。它深入浅出的公布了网上都没有讲清的一个android到底是如何实现自动更新的全过程及生产级全代码。该文不仅科学原理深入浅出、真实可靠,更进一步的揭示了android自动更新的巧妙之处。快来了解如何让你的手机始终保持新鲜活力,让科技成为你身边的贴心好帮手的诀窍吧!原创 2024-06-15 17:09:03 · 446 阅读 · 0 评论 -
Android入门第67天-如何开发一个复杂的类GPT聊天界面的最佳指南
在Android里如何开发出GPT那样的逐字打印聊天界面呢?只是一个延时操作然后逐字打印这么简单吗?碰到过很多开发者在一开始开发很顺畅,写着写着当需求变复杂一些后不得不最后重构整个Android端的聊天界面!本文旨在帮助大家快速设计和开发类GPT聊天界面,同时也把在基于Android开发类GPT聊天界面的一些“坑 ”提前告诉大家。文中的核心知识点和代码是整个互联网上找不到的。原创 2024-03-03 00:32:45 · 438 阅读 · 1 评论 -
Android入门第66天-在不同的开发电脑上如何保持打出的APK签名一致的解决方法
Android Studio在不同的开发电脑上如何保持打出的APK都一致的解决方法。这篇实用级教程帮助初学者彻底搞通Android Studio的打包时的签名一致以及如何解决签名一致性问题。原创 2024-02-11 23:00:14 · 860 阅读 · 0 评论 -
Android入门第66天-使用AOP
网上存在着大量使用hujiang的aspectjx的AOP案例,这些案例和文章超9成都是复制粘贴,大部分连运行都运行不起来,其二是网上的关于aspectjx的教程中所用组件也已经不维护了。因此我们用最原生的aspectj来讲述最纯净最正宗的AOP使用方法,并以一个生产级实例以便于读者理解。原创 2023-02-24 17:40:30 · 1023 阅读 · 0 评论 -
Android入门第64天-MVVM下瀑布流界面的完美实现-使用RecyclerView
时下最潮的瀑布流是怎么实现的?网上很多关于使用RecyclerView实现瀑布流的例子,还留下了许多坑。这是因为网上所有的关于RecyclerView的使用都是错的,本教程内会使用一个生产上的例子,并辅以正、反两个例子基于mvvm设计模式下使用RecyclerView完整讲述和实现一个正确的拥有良好用户体验类淘宝、抖音的瀑布流墙。原创 2023-02-20 13:59:13 · 3477 阅读 · 2 评论 -
Android入门第63天-解决同一行里ImageView或者是组件和TextView不能置顶对齐
实际场景中碰到过太多初学者,仅仅是为了一个文本框和其它组件需要置顶对齐却死活找不到正确的对齐方向。我们使用了layout_gravity="top",gravity,甚至网上一堆人还说改用relative layout。结果很多新手调几天都搞不定一个对齐,随便怎么样调,我们发觉我们的这个字不能和左边的图片对齐。其实一切只是在于把文本框外部的一个“壳”给去掉。原创 2023-02-05 16:44:54 · 890 阅读 · 0 评论 -
Android入门第62天-Glide显示网络图片高版本的使用
随着越来越深入mvvm我们的Glide的使用场景也越来越多。而Glide 高版本(>4.9)在加载远程、网络图片时会抛一个Failed to find GeneratedAppGlideModule的Exception,如何解决这个Exception呢?本文会作详细介绍。同时,本文还会详细介绍一个生产级应用的APP内如何使用图片的规范以及相应的架构。原创 2023-02-04 20:51:57 · 758 阅读 · 0 评论 -
Android入门第61天-Fragment嵌套Fragment的用法
Fragment嵌套可以构成各种复杂的组件、布局。但是在其使用时经常会面临各种“坑 ”,特别是嵌套Fragment在有些开发机、真机上可以显示而换到另一台开发机、真机上就不能显示并且还会抛出或者干脆不抛Exception也不显示Fragment中内容的坑,本文教给大家正确的Fragment嵌套的调用返回的用法。原创 2023-02-04 15:52:50 · 2585 阅读 · 2 评论 -
Android入门第60天-MVVM中的Databinding与ListView结合使用
简单的Databinding很容易懂,但是当我们遇到一些复杂的界面特别是一些含有gridview, listview的界面时如何使用databind以及databinding可以给我们传统的基于adapter的mvc编程方式上带来何样的巨大便利呢?今天这一篇就以listview为基础讲述mvvm中databinding的高级用法。原创 2023-01-24 21:28:40 · 1714 阅读 · 0 评论 -
Android入门第59天-进入MVVM
MVVM并不存在,只是xml里找控件找了太多了,自然而然就“找”出了一套共性。从今天开始我们Android教程经历了一次里程碑,你其实已经可以开发东西了,自己照着微博留言做一个小论坛、小商城,前面我们学习到的这些知识足够用了。但是,如果你想去正规化团队、好点的团队、公司工作肯定不能这么“作坊”,那么后面我们就会集中火力讲在jetpack即MVVM模式下的各种开发了原创 2023-01-22 20:18:52 · 1851 阅读 · 0 评论 -
Android入门第58天-真机调试
在进入下面课程前我们先需要学习如何用Android Studio连接真机。因为很多硬件设备类的相关开发在Android Studio里调试起来非常的繁琐且对开发者来说很不友好,因此不如直接拿真机连接着Android Studio开发来得更简便。原创 2023-01-16 13:20:19 · 4896 阅读 · 0 评论 -
Android入门第57天-使用OKHttp多线程制作像迅雷一样的断点续传功能
今天我们将继续使用OkHttp组件并制作一个基于多线程的可断点续传的下载器来结束AndroidOkHttp组件的所有知识内容。在这一课里我们会在上一次课程的基础上增加SQLite的使用以便于我们的App可以暂存下载时的实时进度,每次下载开始都会判断是覆盖式还是续传式下载。同时由于Android自带的进度条太丑了,我们对它稍稍进行了一些美化。可以说今天这篇教程也是一篇阶段性的功能整合实验。原创 2023-01-07 17:53:59 · 809 阅读 · 0 评论 -
Android入门第56天-在Android里使用OKHttp多线程下载文件并展示其进度
OkHttp是一个神器。OkHttp分为异步、同步两种调用。今天我们就会基于OkHttp的异步调用实现一个多线程并行下载文件并以进度条展示总进度的实用例子。当然这不是我们的Android里使用OkHttp的最终目标,我们最终在下一篇中会在今天这一课的基础上加入“断点续传”的功能,从而以这么连续的几篇从易到难的循序渐进的过程,让大家熟悉和掌握Android中使用OkHttp的技巧以便于形成大脑的“肌肉记忆”。原创 2023-01-02 15:12:54 · 2677 阅读 · 1 评论 -
Android入门第55天-在Android里使用OKHttp组件访问网络资源
今天的课程开始进入高级课程类了,我们要开始接触网络协议、设备等领域编程了。在今天的课程里我们会使用OKHttp组件来访问网络资源而不是使用Android自带的URLConnection。一个是OKHttp组件更方便二个是OKHttp组件本身就带有异步回调功能。原创 2022-12-23 23:15:34 · 1341 阅读 · 0 评论 -
Android入门第54天-SQLite中的Transaction
在今天的课程中我们要使用SQLite中的表事务操作来熟悉正确提交事务以及没有正确提交事务时结果的不同。原创 2022-12-23 14:50:23 · 1201 阅读 · 0 评论 -
Android入门第53天-在Android手机里使用SQLite内嵌式数据库
Android内带SQLite内嵌式数据库了。这对于我们存储一些更复杂的结构化数据带来了极大的便利。比如说我们要存储应用内的常用联系人,购物车暂存信息,常量。必竟从xml或者是json里取数据都没有一条Select语句来得简单。原创 2022-12-21 17:18:17 · 1678 阅读 · 0 评论 -
Android入门第52天-在SharedPreference中使用加密
在上一篇中,我们讲了SharedPreference的使用。但是那不是一个生产场景。特别是我们举了一个例子,存放登录信息的例子。这个例子里用户的密码没有加密,比如说在真实的实际生产环境里用户的一些敏感信息或者说是像:用户四要素按照等保3规范以及“个信”法,都是需要加密和脱敏的。所以当碰到这样的“敏感”信息脱敏需求时,我们不可以直接把一个明文存入SharedPreference。因此我们今天会使用MD5来对SharedPreference中存放的信息进行脱敏处理。原创 2022-12-21 13:11:19 · 1056 阅读 · 0 评论 -
Android入门第51天-使用Android的SharedPreference存取信息
上一篇我们介绍了在android里如何读写本地文件。我们有一种场景,类似网页的cookie,要把用户的一些储如上一次登录、使用的痕迹等信息保存下来以便于每次不需要做重复“填表单”的操作,当在这种场景下我们如果也使用本地文件读写的话显然是“太重”了。因此android提供了一种轻量级存储叫SharedPreference专门用来存储这种场景下的数据。原创 2022-12-19 10:24:04 · 1274 阅读 · 0 评论 -
Android入门第50天-读写本地文件
为了这个系列,我的代码已经准备到了第150天了。接下来的内容会越来越精彩,我们也越来越开始进入Android的一些高级功能上的编程了。今天我们就要讲Android中对本地文件进行读写的全过程。原创 2022-12-19 09:46:25 · 5436 阅读 · 0 评论 -
Android入门第49天-使用RadioGroup+Fragment来重构类首页底部4个按钮的界面
我们在:Android入门第47天-Fragment的基本使用 中使用Fragment制作了一个类首页底部含4个按钮的界面。今天的课程我们要做的是把第47天里的代码中一部分共用的东西抽象到res/values/themes.xml文件中。另外我们使用RadioGroup天然的只有一个可以被选中来代替原先的TextView做的底部4个按钮以及它们的点击事件。原创 2022-12-15 17:04:36 · 1053 阅读 · 0 评论 -
Android入门第48天-静态BroadCast之接受开机广播
我们在之前的BroadCast章节中写了动态BroadCast。但我们提过一笔BroadCast也有静态之分,而静态的BroadCast主要用于监听一些如:开机广播、SIM卡拨出插入等广播。这些广播都为静态注册广播事件。因此我们今天就以一个App监听Android开机广播为例子说明静态广播的使用方法以及如何收听开机广播。原创 2022-12-15 16:00:55 · 2343 阅读 · 0 评论 -
Android入门第47天-Fragment的基本使用
我们的Android入门一步步已经进入中级。我们讲完了所有的基本组件的使用、Activity、Service、BroadCast。今天我们来到了Fragment篇章。Fragment和Activity比到底是一个什么样的存在呢?我们以一个很小的例子来说通Fragment。在今天的篇章中我会用一个通用的下部含4个按钮首页样式来解释Fragment的基本使用。原创 2022-12-14 16:29:18 · 1450 阅读 · 0 评论 -
Android入门第46天-使用BroadCast来模拟异地登录事件发生后的主动退出另一个设备重登录
随着对BroadCast的越来越深入,我们今天要实现一个稍微复杂一点的BroadCast。即我们常用来有时APP打开时如果多个设备同时登录一个帐号,而我们只允许一个设备登录一个帐号时,此时我们的APP会弹一个对话框如:您的账号在别处登录,请重新登陆!而实现这样的一个对话框我们还涉及到android对无activity依托的dialog需要进行静态授权和代码动态授权。通过这个例子我们进一步来了解android的Broad Cast机制。原创 2022-12-13 22:28:07 · 568 阅读 · 0 评论 -
Android入门第45天-手工发送一个BroadCast
上一篇我们讲了简单的动态BroadCast,今天我们通过手工来发送一条BroadCast进一步来了解BroadCast。原创 2022-12-13 17:58:46 · 353 阅读 · 0 评论 -
Android入门第44天-Android里使用动态BroadCast
本篇开始越来越深入Android的后台广播、Service等机制。并且开始渐渐会涉及到Android相关的权限。我们以一个简单的动态BroadCast入手开始展开后续Android相关的知识篇章。原创 2022-12-13 17:26:40 · 707 阅读 · 0 评论 -
Android入门第43天-Activity与Activity间的互相传值
今天的课程会比较好玩,我们在之前的Service篇章中看到了一种putExtras和getExtras来进行activity与service间的传值。而恰恰这种传值其实也是Android里的通用传值法。它同样可以适用在activity与activity间传值。原创 2022-12-04 20:46:12 · 761 阅读 · 0 评论 -
Android入门第42天-Android中的Service(IntentService)
在前一篇中我们讲了bindService的使用。并且我们留下了一个念想,即在bindService取值时故意阻塞30秒,引起了一次ANR并引出了今天的章节-IntentService。IntentService的生命周期中有一个非常好的方法-onHandleIntent方法,它是一个abstract方法,开发者在实现IntentService时可以覆盖它来处理“长事务”。原创 2022-12-04 19:23:08 · 502 阅读 · 0 评论 -
Android入门第41天-Android中的Service(bindService)
在前一天我们介绍了Android中有两种启动Service的方法。并擅述了startService和bindService的区别。同时我们着重讲了startService。因此今天我们就来讲bindService。bindService大家可以认为它是和Android的一个共生体。即这个service所属的activity如果消亡那么bindService也会消亡。因此今天我们以一个比较复杂的例子,activityservice间互相传值来讲透这个bindService的使用。原创 2022-12-04 19:06:56 · 1210 阅读 · 0 评论 -
Android入门第40天-Android中的Service(SimpleStartService)
从今天开始,之前39天的Android如果每一篇只有30分钟就能读完和掌握那么从今天开始越往后会越复杂。因为我们的Android教程开始进入“中级”难度了。特别是Service,这个Service我要分成好几章来讲,其重要性足以可见。原创 2022-12-04 18:02:15 · 581 阅读 · 0 评论 -
Android入门第39天-系统设置Configuration类
本节给大家介绍的Configuration类是用来描述手机设备的配置信息的,比如屏幕方向, 触摸屏的触摸方式等。这一篇章我个人给到大家的建议是,你只需要知道有这么些东西,它是用来做“手机里的->设置”或者你的一些应用在做一些特殊的事时先要依据你手机的全局settings,如果某个开关没关就没法使用你的应用一类的场景时的判断。因此在我们没有进入本地设备、摄像头、多媒体、蓝牙等篇章时你可以通过我本文中的小例子先了解Android有一些什么样的Configuration即可。原创 2022-12-04 17:34:32 · 907 阅读 · 0 评论 -
Android入门第38天-使用随鼠标移动的圆点来熟悉onTouchEvent
平时包括之前的例子大量是基于TouchListener如:onClick这种一类的事件。今天给大家带来的是TouchListener与OnTouchEvent的比较,以及多点触碰的知识点! TouchListener是基于监听的,而OnTouchEvent则是基于回调的!因此我们通过一个小例子,来擅述同样是触碰事件的ouTouchEvent是什么样的,并留有一个有趣的手势缩放小作业给到各位。原创 2022-12-04 16:57:22 · 631 阅读 · 0 评论 -
Android入门第37天-在子线程中调用Handler
前一章我们以一个简单的小动画来解释了Handler。这章我们会介绍在子线程里写Handler原创 2022-12-04 00:09:19 · 1532 阅读 · 2 评论 -
Android入门第36天-以一个小动画说一下Android里的Handler的使用
Handler是用于异步、子线程内更新Android主线程内的控件内容或者根据相应的子线程状态重新渲染Android内控件用的,本篇以一个好玩的8桢小动画来讲透Android中Handler的机制。原创 2022-11-24 23:35:18 · 592 阅读 · 0 评论 -
Android入门第35天-Android里的SubMenu
本篇延用上一篇Android入门第35天中的ContextMenu的例子来向大家展示完整的menu里套menu即:submenu的使用场景。原创 2022-11-24 23:25:59 · 419 阅读 · 0 评论 -
Android入门第34天-Android的Menu组件使用大全
课程目标:讲透menu组件的使用,分别以:做一个可以改变屏幕中间TextView字体颜色的系统菜单;点一下按钮弹出一个PopMenu;对于一个TextView绑定一个ContextMenu;三个例子覆盖menu组件的使用场景。原创 2022-11-24 23:22:11 · 1286 阅读 · 0 评论 -
Android入门第33天-Android里的弹出式对话框
Android Studio里在4.0前有一种ProgressDialog,这个已经淘汰了。我们完全可以使用ProgressBar来取代。但是还有一种Dialog叫PopWindow,它是一种“可阻塞式Dialog”。即弹出后除非你给它一个“动作”否则就一直显示在那。今天我们就来看看这种Dialog的使用原创 2022-11-24 23:13:33 · 2328 阅读 · 0 评论 -
Android入门第32天-Android中的Alert Dialog的使用大全
写博客至今200篇,借此第200篇博客总结过去、展望未来。同时和大家分享从正式写博客到现在我的思想、技能上发生的变化。同时勉励自己激励读者勇于刷新自己的知识。Java之人理应把Android当成自己Java技能的一部分,而不要把它看作是另一个领域。本篇博文用若干例子讲透Android中的基本AlertDialog的几种用法以及最后用一个自定义Dialog的例子总结整个AlertDialog的所有用法。原创 2022-11-20 15:11:51 · 1376 阅读 · 1 评论