当前位置:首页 » 安卓系统 » android开发笔记

android开发笔记

发布时间: 2022-11-15 18:41:55

⑴ Android 笔记: AAC ADTS笔记

裸流无法播放,每一帧都要加上adts 头。

其中,
profile:表示使用哪个级别的AAC,如01 Low Complexity(LC) -- AAC LC
profile的值等于 Audio Object Type的值减1.
profile = MPEG-4 Audio Object Type - 1
sampling_frequency_index:采样率的下标

channel_configuration:声道数,比如2表示立体声双声道,

其中的data就是解码AAC的关键信息,该信息的格式:
AAC Profile 5bits | 采样率 4bits | 声道数 4bits | 其他 3bits |

如果是8K的采样率则换成:data = new byte[]{(byte) 0x15, (byte) 0x88};

⑵ Android开发一个简单实用的闹铃APP

生活中我们会常常遇到需要闹钟提醒;不管是起床还是生活中的事件提醒。

那作为Android开发如何自己开发一个闹钟功能呢,是不是觉得很酷呢?接下来我们就实战一个闹钟。





本示例采用的是RecyclerView,其适配器类与常无二,其异在于继承一个代理类,为适配之后侧滑删除而准备

建立一个内部类ViewHolder实现控件定义申明

实现onCreateViewHolder方法载入子项布局文件

绑定实体类,实现onBindViewHolder获取数据

此处有三处状态,第一种状态:第一次进入程序,默认加载固定闹钟子项;第二种状态:进入添加子项页面,然后返回其主页面,并判断其switch是否为ture,如果为ture则添加子项;第三种状态:程序被系统回收或者用户停止程序,并再次进入程序,防止加载前一时刻闹钟子项;

添加依赖 实现侧滑主要依赖于一个第三方包,然后使用RecyclerView进行子项绑定 依赖如下:

并在目录build.gradle包下添加如下库

其实现侧滑删除主要的玄机在于布局文件当中,使用RelativeLayout布局,将删除按钮固定在布局右方,并使用其他布局将其覆盖,只有滑动时,才将其显示。掩盖侧滑删除按钮与暴露侧滑删除按钮效果对比图如下





然后,在适配器类中,实现WeSwipeHelper.SwipeLayoutTypeCallBack接口,实现如下三个方法,第一个方法为获取侧滑删除按钮的宽度;第二个方法为需要滑动的视图,也就是覆盖侧滑删除按钮的布局;第三个方法为当视图正在滑动时,用户触发单击事件,自动还原滑动状态

最后,在需要添加子项的视图中绑定RecyclerView即可

通过监听子项滑动删除按钮点击事件,实现子项删除

跳转新增闹钟子项Acticity需要传输实体类对象,传输对象一般需要序列化改类,其操作如下

定义实体类,并实现序列化

然后通过Intent传输Bundle对象

实现时间选择主要使用系统集成的组件TimePicker,其使用方法如下 其有两种显示方式,第一种为spinner,就是下拉滑动式,第二种为clock,即显示一个时钟,通过滑动指针选择时间

在style.xml文件中申明如下样式

然后再指定Activcty申明即可

获取数据比较简单,实现对应接口即可

将获取的数据通过SharedPreferences存储起来,然后点击存储时,进行页面跳转,然后再该界面进行取出数据

存储数据

首先判断回调的switch数据是否为ture,如果为ture则保存该子项,然后再适配器类中进行数据添加

选中与默认两种状态效果图如下




创建thumb和track样式

创建一个选择器文件,有选中和默认两种状态

创新open_thumb.xml文件

创建shut_thumb.xml文件

同样创建一个选择器,并用于两种状态

其中AlarmManager为系统主要操作类,参数为提醒模式、提醒时间(long型)、PendingIntent对象 以下有三种时间传入,第一种,直接传入一个Long型时间用于测试,第二种,通过设置系统启动至今而设置时间,第三种,通过取出设置的时间,然后获取系统当前时间,将其差传入其中。

然后再清单文件中注册服务

使用Intent实现服务启动

杀死程序

本示例总共使用到了三个单例类:SP(SharedPreferences封装)、TimeFormat(时间数据格式封装)、KillProcess(杀死所有Activity)

SharedPreferences

KillProcess

文章带这里就完成了一个简单的闹钟;Android开发还有许多更加更多的知识学习。进一步学习Android技术,我这里推荐这份笔记方便学习,我就放在私信, 发送“核心笔记”或“手册”即可获取。朋友们可以免费领取!

⑶ Android开发一个简单实用的闹铃APP

生活中我们会常常遇到需要闹钟提醒;不管是起床还是生活中的事件提醒。

那作为Android开发如何自己开发一个闹钟功能呢,是不是觉得很酷呢?接下来我们就实战一个闹钟。

本示例采用的是RecyclerView,其适配器类与常无二,其异在于继承一个代理类,为适配之后侧滑删除而准备

建立一个内部类ViewHolder实现控件定义申明

实现onCreateViewHolder方法载入子项布局文件

绑定实体类,实现onBindViewHolder获取数据

此处有三处状态,第一种状态:第一次进入程序,默认加载固定闹钟子项;第二种状态:进入添加子项页面,然后返回其主页面,并判断其switch是否为ture,如果为ture则添加子项;第三种状态:程序被系统回收或者用户停止程序,并再次进入程序,防止加载前一时刻闹钟子项;

添加依赖
实现侧滑主要依赖于一个第三方包,然后使用RecyclerView进行子项绑定
依赖如下:

并在目录build.gradle包下添加如下库

其实现侧滑删除主要的玄机在于布局文件当中,使用RelativeLayout布局,将删除按钮固定在布局右方,并使用其他布局将其覆盖,只有滑动时,才将其显示。掩盖侧滑删除按钮与暴露侧滑删除按钮效果对比图如下

然后,在适配器类中,实现WeSwipeHelper.SwipeLayoutTypeCallBack接口,实现如下三个方法,第一个方法为获取侧滑删除按钮的宽度;第二个方法为需要滑动的视图,也就是覆盖侧滑删除按钮的布局;第三个方法为当视图正在滑动时,用户触发单击事件,自动还原滑动状态

最后,在需要添加子项的视图中绑定RecyclerView即可

通过监听子项滑动删除按钮点击事件,实现子项删除

跳转新增闹钟子项Acticity需要传输实体类对象,传输对象一般需要序列化改类,其操作如下

定义实体类,并实现序列化

然后通过Intent传输Bundle对象

实现时间选择主要使用系统集成的组件TimePicker,其使用方法如下
其有两种显示方式,第一种为spinner,就是下拉滑动式,第二种为clock,即显示一个时钟,通过滑动指针选择时间

在style.xml文件中申明如下样式

然后再指定Activcty申明即可

获取数据比较简单,实现对应接口即可

将获取的数据通过SharedPreferences存储起来,然后点击存储时,进行页面跳转,然后再该界面进行取出数据

存储数据

首先判断回调的switch数据是否为ture,如果为ture则保存该子项,然后再适配器类中进行数据添加

选中与默认两种状态效果图如下

创建thumb和track样式

创建一个选择器文件,有选中和默认两种状态

创新open_thumb.xml文件

创建shut_thumb.xml文件

同样创建一个选择器,并用于两种状态

其中AlarmManager为系统主要操作类,参数为提醒模式、提醒时间(long型)、PendingIntent对象
以下有三种时间传入,第一种,直接传入一个Long型时间用于测试,第二种,通过设置系统启动至今而设置时间,第三种,通过取出设置的时间,然后获取系统当前时间,将其差传入其中。

然后再清单文件中注册服务

使用Intent实现服务启动

杀死程序

本示例总共使用到了三个单例类:SP(SharedPreferences封装)、TimeFormat(时间数据格式封装)、KillProcess(杀死所有Activity)

SharedPreferences

KillProcess

文章带这里就完成了一个简单的闹钟;Android开发还有许多更加更多的知识学习。进一步学习Android技术,我这里推荐这份笔记方便学习,我就放在这里 Android核心技术进阶手册、实战笔记、面试题纲资料 。朋友们可以免费领取!

⑷ Android 写一个属于自己的印象笔记

之前在看大部分的Android 富文本编辑几乎都是利用webview实现,所以,便有了做一个Android原生的富文本编辑器的主意。

https://blog.csdn.net/qq_15893929/article/details/88670198

照惯例先秀一下图:

该富文本编辑器样式仿照印象笔记的Android版,绘制层实现基于Android的span样式。

主要的实现在于编辑页面,直接是继承自EditText加以改造的(偷懒),但是如果想实现一个商业级别的编辑器,建议使用StaticLayout和自定义View,但是需要考虑的东西比较多,例如输入法和排版布局、选区管理绘制、各类点击事件。

这个版本更多的是将自己所学的一些知识的运用,只做了小一段时间,所以存留很多了bug和缺陷,后续会继续找时间修补。

想增加的内容:

https://github.com/ChyengJason/SRich

⑸ ‘38’在Android平台做阅读笔记的方法

在 Android 平台记笔记,指的是用手机或者安卓平板写笔记,这里暂时不包括其他设备。
该平台的特点是,移动能力强,便携,但是办公能力弱。这里的阅读是非常方便的,在很多软件的帮助下,阅读体验往往比电脑更好,而且便携性使得这里的阅读可以保证高度连续性。单纯从‘阅读’看,这真的是相当优秀的平台,所以,如果能在这样优秀的阅读平台上方便地‘写读书笔记’的话,那就太完美了。
马驴我作为“不记笔记会死星人”呢,在这个方面也是各种尝试,费了不少力气,但一直没有很理想的效果,甚至一直连“够用”这个级别的解决方案都没有遇到。直到最近,某个神器的新版本出现,才在很大程度上解决了这个问题(具体是什么,我会在后面说明,这里先卖个关子)。所以现在总算是有了一些相对成体系的解决方案了。

一切一切的前提都是,阅读的同时要记笔记。如果只是单纯的阅读而不记笔记的话,这样的阅读适合于看小说之类的超浅阅读材料,所以不在本文的讨论范围内。嗯,所以在 Android 上阅读也要有良好的记笔记条件才理想。

三星的Note系列我没有见过,所以不清楚一支笔能带来怎样的扭转。单纯说常见的纯触屏设备吧,这些设备如果想要在阅读的时候记笔记的话,需要具备 适合笔记的基本条件

如果满足这样的条件的话,就能在区域截屏的基础上,对局部进行文字笔记的记录,最后还能将汇总在一起的笔记导出来。

既然上面列举了笔记的基本条件,那么就要针对性地装一些软件。通常是多个工具配合才能良好运转。

阅读器的话,epub的支持是最为广泛的,mobi在手机上除了kindle以外极少有能打开的工具,而kindle的体验太差,所以, 在Android上阅读尽可能将电子书转化为epub格式。

其余的常见格式就是pdf了(可能还有奇葩的caj),这种东西通常不能转epub或者其他格式,即使勉强转化,效果也不理想。所以直接按原始格式阅读即可。

笔记软件其实在Android上并不需要独家列举,毕竟只要有记录功能就够了——吗??才不是。
笔记不仅仅是写下来而已,一定还要有足够强大的方便性,毕竟阅读实在是一件辛苦事:即使你热爱阅读,也一样。
所以,本着方便的需求,对笔记软件进行审视以后可以发现一些值得推荐的工具:

Epub类:

其他类:
其他无论是网页还是pdf之类的,笔记都相似,采用独立的笔记软件进行整理比较好。

不得不说的是,除了OneNote外,为知笔记也有类似的快速笔记并添加到上一篇笔记的功能,但只限于‘复制’而已,与输入是脱轨的,所以灵活性较差,还不完善。其余软件更是完全没在这方面用力。

前面说过的,‘区域截图’工具,在Android上必须Root才能正常工作。Root以后这类工具还是一搜一大把的,感觉不出多大区别,就不推荐了,这一步的难点在于Root。
不Root真的就不能区域截图,只能全屏截图!

万事俱备,现在开始分析阅读笔记的写作方法。

这个很简单。以多看阅读为例,阅读的时候发现较好的段落以后直接长按划线,然后写读书笔记就行了。没什么难度。
值得一提的是,在手机上不容易把握全局逻辑,所以这样的阅读通常不是阅读的终点,还需要在电脑上进行进一步的梳理——如果想要更深一层地理解书中内容的话。但单纯在Android上读epub并记笔记的话,这就够了。

相比之下,这个略微困难。
首先我们开启OneNote的悬浮窗,同时开启区域截图工具,然后开始读pdf。

还是要说OneNote在移动端糟糕的阅读体验……所以这里的笔记通常是不能直接在手机上看的,实在很难看。需要在电脑上整理一下,把多余的笔记容器(方框)合并以后,才能正常适应手机屏幕。
补充:没有Root的Android手机,在这一方面会遇到巨大的困难。。。

网页资料,无论是保存到Pocket之类里面还是直接网页阅读都一样,和读pdf差不多,多一步‘分享’。这一步是为了保存来源,毕竟这里的阅读明显要零散得多。
所以步骤为:

这个方法还是要提一下,保证方法的完整性……
简单来说就是,Android设备只负责显示阅读材料,而笔记由屏幕外面的实体(纸质)纸笔完成。
适合于为课本记笔记。
这个大家都熟悉,难度较小,只不过记笔记以后整理起来较为困难,这是本方法的最大问题。

⑹ Android开发笔记(二十一)Room 创建和使用

看到个好教程: https://blog.csdn.net/qq_21793463/article/details/78905316
更高级的复杂数据存储方法: https://www.jianshu.com/p/9c430196aac6

工具:DB Browser
或者AS:file - setting - plugins -Database Navigator
开门见坑:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nanmu.room/com.nanmu.room.MainActivity}: java.lang.RuntimeException: cannot find implementation for com.nanmu.room.WordDatabase. WordDatabase_Impl does not exist
原因:依赖问题,中间那一句必加

定义:
这里Word相当于一个表,单个word实例化相当于每一行,db的名字是main中定义的databaseName,Word里的元素相当于key(Entity)

Dao:

Main:

将wordDao.insertWords改成:
其他同理。(用new Thread应该也可以)
使用的时候用这个
new IsertAsyncTask(wordDao).execute(word,word2);

功能和之前一样,不截图了

⑺ 安卓笔记——layout的属性

相对于兄弟元素

android:layout_below="@id/aaa":在指定View的下方

android:layout_above="@id/xxx":在指定View的上方

android:layout_toLeftOf="@id/bbb":在指定View的左边

android:layout_toRightOf="@id/cccc":在指定View的右边相对于兄弟元素

android:layout_below="@id/aaa":在指定View的下方

android:layout_above="@id/xxx":在指定View的上方

android:layout_toLeftOf="@id/bbb":在指定View的左边

android:layout_toRightOf="@id/cccc":在指定View的右边

相对于父元素

android:layout_alignParentLeft="true":在父元素内左边

android:layout_alignParentRight="true":在父元素内右边

android:layout_alignParentTop="true":在父元素内顶部

android:layout_alignParentBottom="true":在父元素内底部

对齐方式

android:layout_centerInParent="true":居中布局

android:layout_centerVertical="true":水平居中布局

android:layout_centerHorizontal="true":垂直居中布局

android:layout_alignTop="@id/xxx":与指定View的上边界一致

android:layout_alignBottom="@id/xxx":与指定View下边界一致

android:layout_alignLeft="@id/xxx":与指定View的左边界一致

android:layout_alignRight="@id/xxx":与指定View的右边界一致

间隔

android:layout_marginBottom=""; 离某元素底边缘的距离

android:layout_marginLeft=""; 离某元素左边缘的距离

android:layout_marginRight ="";离某元素右边缘的距离

android:layout_marginTop=""; 离某元素上边缘的距离

android:layout_paddingBottom=""; 离父元素底边缘的距离

android:layout_paddingLeft=""; 离父元素左边缘的距离

android:layout_paddingRight ="";离父元素右边缘的距离

android:layout_paddingTop=""; 离父元素上边缘的距离

margin 与padding 区别

padding是站在父view的角度,是自己的内容与其父控件的边之间的距离。

margin则是站在自己的角度描述问题,自己与旁边的某个组件的距离

⑻ Android成长笔记3——创建layout-large文件夹

问题环境 :需要建立layout_large文件夹,然无头绪

详情 :https://www.jianshu.com/p/ccf07c75649e

详情如下 :

之前在写屏幕适配的时候,考虑到平板和手机的尺寸不一样,所以想新建一个layout_large文件,想起了以前创建layout文件的做法,具体参见: Android Studio 在layout文件夹建立子文件夹

但是发现还是有问题。对应的activity还是只是指向第一个layout文件中的activity_main.xml文件。找了下解决的方法,这里记录下:

我需要的是在layout和layout_large文件下都创建activity_main2.xml这个文件,在layout文件下创建很容易,直接创建就好了,这里记录下创建layout_large这个文件。

1.右键res->new->Android resource file

2.进入New Resource File

3.单击Size

⑼ Android开发艺术探索读书笔记之AIDL

AIDL是 Android Interface definition language的缩写,一看就明白,它是一种android内部进程通信接口的描述语言,通过它我们可以定义进程间的通信接口

AIDL可以实现跨进程的方法调用。定义进程通信接口供服务端和客户端调用。

在AIDL文件中并不是所有数据类型都可以使用。只支持下列数据类型

默认情况下AIDL的调用过程是同步的,所以不能直接进行比较耗时的操作,否则容易导致客户端ANR。如果需要进行异步操作,在服务端不需要另起线程,但是在客户端需要另起线程访问远程方法,再通过Handler通知到UI线程即可!

⑽ 如何自学 Android 编程

首先是选好教材,我发现好的教材真的是可以使学习事半功倍,由于我是没有任何学习基础的人(不会使用JAVA语言),所以我开始就补了我的JAVA。我选的教材是国外的教材,《JAVA大学基础教程》第六版花了两个星期看完了,看了好几遍。然后才开始学习Android开发的,建议那些没有JAVA基础的同学,先去补习一下JAVA的基础知识。

补完JAVA的基础,才真正踏上学习Android开发的路,开始学习的时候我到网上下了一大堆教程,这个Android精通,那个Android详解的,这个看看,那个看看,一段时间下来发现教程太多太杂反而不好,接下来的时间里我就选了我自己觉得比较的两个教程认真看,一个是《Android开发笔记》一个是mars老师的视频教程,我自己也买了。

如果你一点基础没有,你可以先试试在线app开发平台-应用之星,无需编码,人人都能开发。如果你自己想学习andriod开发,那就一定要坚持下去。如果我的回答对你有所帮助,记得选择我为满意答案哦,么么哒。

热点内容
cad配置低可以安装什么版本 发布:2025-03-04 12:59:36 浏览:977
宝可梦日月什么配置能玩 发布:2025-03-04 12:46:18 浏览:918
oraclesql动态 发布:2025-03-04 12:44:19 浏览:232
MPLAB能否编译pic32 发布:2025-03-04 12:42:50 浏览:289
如何分辨一辆车是什么配置 发布:2025-03-04 12:41:10 浏览:349
配置很低的电脑玩csgo怎么调 发布:2025-03-04 12:40:29 浏览:25
视频解析网站源码 发布:2025-03-04 12:40:25 浏览:318
哪个软件可以直接重启安卓手机 发布:2025-03-04 12:22:42 浏览:609
c语言scanf的意思 发布:2025-03-04 12:08:31 浏览:468
两端存储器 发布:2025-03-04 12:07:49 浏览:86