远程实习第三周总结

本周学习内容如下
1.熟悉Android四种数据存储方式
2.熟悉Android项目中各种资源文件的规范使用
3.熟悉Animation与Animator动画

四种数据存储方式

键值对存储-SharePreference

除SQLite数据库外,另一种常用的数据存储方式,其本质就是一个xml文件,常用于存储较简单的参数设置

数据库存储-SQLite

SQLite是一个轻量级的数据库,支持基本SQL语法,是常被采用的一种数据存储方式。Android为此数据库提供了一个名为SQLiteDatabase的类,封装了一些操作数据库的API。

APP间共享存储-ContentProvider

Android系统中能实现所有应用程序共享的一种数据存储方式,由于数据通常在各应用间的是互相私密的,所以此存储方式较少使用,但是其又是必不可少的一种存储方式。例如音频,视频,图片和通讯录,一般都可以采用此种方式进行存储。每个Content Provider都会对外提供一个公共的URI(包装成Uri对象),如果应用程序有数据需要共享时,就需要使用Content Provider为这些数据定义一个URI,然后其他的应用程序就通过Content Provider传入这个URI来对数据进行操作。

文件存储-File

即常说的文件(I/O)存储方法,常用语存储大数量的数据,但是缺点是更新数据将是一件困难的事情

资源文件规范

res/drawable

通常用来存放图片资源。如logo等。

res/layout

存放布局文件

res/values

  • string.xml 存放在应用中多次使用的字符串
  • arrays.xml 存放数组,有字符串和整数两种
  • color.xml 存放组件多次使用的颜色列表
  • styles.xml 存放Android组件中的样式
  • dimens.xml 存放用于适配的尺寸 还可以用于百分比适配 参考

文件夹含义
values-v11 ——-API 11+代表android 3.0 +,意思是在API11设备上,该目录下的dimens.xml代替res/values/dimens.xml

values-480x320、values-800x480等 ————意思是在不同分辨率下,该目录下的dimens.xml代替res/values/dimens.xml

res/xml

存放xml文件,与之前所说的资源类似,存放在其中的资源文件会被编译为二进制数据而存入安装包内。通过R类读取xml文件。

res/raw

存放文件。此目录下文件与之前的资源不同,他们不会被编译为二进制文件.而是以文件形式存放起来。通过R类读取。

assets

可以在此创建子目录并存放不同文件。不会被编译入二进制,而是以目录/文件存放。通过文件名读取。

Animation与Animator

Animation(补间动画)

Animation框架定义了透明度,旋转,缩放和位移几种常见的动画,而且控制的是一个整个View动画,实现原理是每次绘制视图时View所在的ViewGroup中的drawChild函数获取该View的Animation的Transformation值,然后调用canvas.concat(transformToApply.getMatrix()),通过矩阵运算完成动画帧,如果动画没有完成,继续调用invalidate()函数,启动下次绘制来驱动动画,动画过程中的帧之间间隙时间是绘制函数所消耗的时间,可能会导致动画消耗比较多的CPU资源。

动画类型

效果XmlJava
透明渐变alphAlphaAnimation
尺寸渐变scaleScaleAnimation
位置画面转换translateTranslateAnimation
旋转画面转换rotateRotateAnimation

使用Animation

  • 创建一个AnimationSet对象(Animation子类);
  • 增加需要创建相应的Animation对象;
  • 更加项目的需求,为Animation对象设置相应的数据;
  • 将Animatin对象添加到AnimationSet对象当中;
  • 使用控件对象开始执行AnimationSet。

Animator(属性动画)

属性动画是Android3.0之后引进的,它更改的是动画的实际属性,在Tween Animation(补间动画)中,其改变的是View的绘制效果,。而在Property Animator(属性动画)中,改变的是动画的实际属性,如Button的缩放,Button的位置和大小属性值都会发生改变。而且Property Animation不止可以应用于View,还可以应用于任何对象,Property Animation只是表示一个值在一段时间内的改变,当值改变时要做什么事情完全是你自己决定的。

优点

适用性

由于 Animator 使用了反射机制导致其效率偏低,但是这也带来了他适用的对象范围的增加, Animation 仅对 View 这一种对象有用,但是 Animator 可以设置任意对象的属性,使其在某段时间内进行变化。

使用效果

Animator 进行位移变换,点击监听会随着动画效果发生相应改变,即使你正处在动画过程中,你也可以去点击按钮得到你想要的效果。

使用

参考

### ### 第十二周嵌入式实习周记撰写建议:体现技术成长项目贡献 在嵌入式实习的第十二周,通常处于项目收尾或深入优化阶段。此时实习生应具备独立完成模块开发、调试优化的能力,并能主动参系统集成性能调优。因此,周记撰写应聚焦于技术深度的提升对项目整体的实质性推动。 #### ### 技术成长的体现维度 技术成长应围绕对新知识的掌握、已有技能的深化以及问题解决能力的提升展开。例如,在第十二周实习中,实习生可能已经深入掌握Linux系统下的驱动开发、多线程编程、嵌入式网络通信等关键技术,并能将其应用于项目中。 - 在实现多线程任务调度时,采用线程同步机制(如互斥锁、条件变量)解决资源竞争问题,展示了对并发编程的理解实践能力[^2]。 - 在移植WiFi模块驱动时,熟悉设备树配置、内核模块加载、驱动调试等流程,体现了对Linux系统架构的深入理解[^2]。 ```c #include <pthread.h> #include <stdio.h> pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; int shared_data = 0; void* thread_func(void* arg) { pthread_mutex_lock(&mutex); shared_data++; printf("Thread %ld: shared_data = %d\n", (long)arg, shared_data); pthread_mutex_unlock(&mutex); return NULL; } int main() { pthread_t t1, t2; pthread_create(&t1, NULL, thread_func, (void*)1); pthread_create(&t2, NULL, thread_func, (void*)2); pthread_join(t1, NULL); pthread_join(t2, NULL); return 0; } ``` - 在进行系统性能调优时,通过使用`top`、`htop`、`perf`等工具分析CPU占用情况,优化任务调度策略,提升系统响应速度资源利用率,体现了对嵌入式系统性能调优的掌握。 #### ### 项目贡献的具体体现 项目贡献应聚焦于实习生在功能实现、问题修复、性能提升、系统集成等方面的实际作用。例如: - 完成WiFi通信模块的驱动移植数据收发测试,确保其在嵌入式系统中稳定运行,为后续数据上传远程控制功能奠定基础。 - 修复DMA传输过程中出现的缓冲区溢出问题,通过引入环形缓冲区机制优化数据处理流程,提升系统稳定性[^1]。 - 参多模块联调测试,协助解决传感器数据采集显示之间的时序不一致问题,推动项目整体进度。 此外,良好的文档撰写能力也是项目贡献的重要体现。实习生在完成代码开发的同时,应同步整理技术文档、测试报告,便于后续维护团队协作[^3]。 #### ### 周记撰写结构建议 在撰写第十二周实习周记时,建议采用“问题-分析-解决-收获”的结构,清晰展示技术成长路径项目推进作用。例如: > 本周主要完成了WiFi模块的驱动移植通信测试工作。在移植过程中,发现模块无法正常加载驱动,初步怀疑是设备树配置错误。通过查看`dmesg`日志,确认设备树节点未正确配置,最终修改`dts`文件并重新编译内核模块,成功加载驱动。此过程加深了对Linux设备驱动开发的理解,并提升了使用日志工具定位问题的能力。同时,完成WiFi通信测试后,系统能够稳定上传传感器数据,为后续远程控制功能的实现提供了支持。 通过这种方式,既能体现技术深度,又能突出对项目的实际贡献,使周记具备专业性可读性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值