Android中demo的编写

Android HIDL第一个demo编写: HIDL Test——实现Framework&App层与HAL进程IPC Android HIDL 阅读详情

Android中demo的编写

在Android开放中,难免需要学习或验证某个问题,编写一个demo运行一下可以很好的满足这个需求。这样的demo需要重点突出,且只针对某个问题,编写快速,添加或者删除方便。
将某个功能点放到一个单独的model中,需要验证某个功能时就编写关于这个功能的一个单独的model。这个功能点中的每一个子功能都放到一个单独的Activity中。
这样进入这个demo就是一个列表,点击列表的某一项就跳转到某一个model中。
进入这个model又是一个列表,点击列表的某一项跳转到某一个具体的功能里面。
通过这两个列表页一个详情页就能很好的满足上面的需求。

继承 ListActivity

主Activity代码

import android.app.ListActivity
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.ListView
import android.widget.SimpleAdapter

class MainActivity : ListActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        listAdapter = SimpleAdapter(this, getData(),
            android.R.layout.simple_list_item_1, arrayOf("title"),
            intArrayOf(android.R.id.text1))
    }
    private fun getData(): List<Map<String, Any>> {
        val myData = mutableListOf<Map<String, Any>>()
        myData.add(mapOf("title" to "RecyclerView",
            "intent" to activityToIntent(RecyclerViewActivity::class.java.name)))
        myData.add(mapOf("title" to "ViewPager2",
            "intent" to activityToIntent(ViewPager2Activity::class.java.name)))
        myData.add(mapOf("title" to "9Png",
            "intent" to activityToIntent(PngMainActivity::class.java.name)))
        return myData
    }

    private fun activityToIntent(activity: String): Intent =
        Intent(Intent.ACTION_VIEW).setClassName(this.packageName, activity)

    override fun onListItemClick(listView: ListView, view: View, position: Int, id: Long) {
        val map = listView.getItemAtPosition(position) as Map<*, *>
        val intent = Intent(map["intent"] as Intent)
        intent.addCategory(Intent.CATEGORY_SAMPLE_CODE)
        startActivity(intent)
    }
}

model中主Activity的代码

import android.app.ListActivity
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.ListView
import android.widget.SimpleAdapter

class RecyclerViewActivity : ListActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        listAdapter = SimpleAdapter(this, getData(),
            android.R.layout.simple_list_item_1, arrayOf("title"),
            intArrayOf(android.R.id.text1))
    }
    private fun getData(): List<Map<String, Any>> {
        val myData = mutableListOf<Map<String, Any>>()
        myData.add(mapOf("title" to "RecyclerView1",
            "intent" to activityToIntent(RecyclerView1Activity::class.java.name)))
        myData.add(mapOf("title" to "RecyclerView2",
            "intent" to activityToIntent(ViewPager2Activity::class.java.name)))
        myData.add(mapOf("title" to "RecyclerView3",
            "intent" to activityToIntent(RecyclerView3Activity::class.java.name)))
        return myData
    }

    private fun activityToIntent(activity: String): Intent =
        Intent(Intent.ACTION_VIEW).setClassName(this.packageName, activity)

    override fun onListItemClick(listView: ListView, view: View, position: Int, id: Long) {
        val map = listView.getItemAtPosition(position) as Map<*, *>
        val intent = Intent(map["intent"] as Intent)
        intent.addCategory(Intent.CATEGORY_SAMPLE_CODE)
        startActivity(intent)
    }
}

子model中的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.hsz.viewpager2.integration.testapp">
    <application>
    <activity android:name=".RecyclerViewActivity" android:exported="true">
        <intent-filter>
             <action android:name="android.intent.action.MAIN"/>
             <category android:name="android.intent.category.SAMPLE_CODE"/>
            </intent-filter>
    </activity>
    <activity android:name=".RecyclerView1Activity" android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.SAMPLE_CODE"/>
        </intent-filter>
    </activity>

    <activity android:name=".RecyclerView2Activity" android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.SAMPLE_CODE"/>
        </intent-filter>
    </activity>

    <activity android:name=".RecyclerView3Activity" android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.SAMPLE_CODE"/>
        </intent-filter>
    </activity>
        
    </application>
</manifest>
android开发demo集合 简明、完整、全面的安卓开发demo集合,包含如下示例 1、LinearLayout Button、RadioGroup、 CheckBox 2、TableLayout 3、FrameLayout 霓虹灯效果 4、RelativeLayout 梅花效果 5、自定义view跟着触点走的小球 6、 ListView 列表视图 7、WebView web视图 8、ToggleButton 动态布局效果 9、AnalogClock 、 DigitalClock and Chronometer 时钟和数字日期 10、AutoCompleteTextView 根据输入自动补充可能的全部 11、Spinner View 选择框(弹出框形式选择) 12、DatePicker TimePicker View 日期时间选择器 13、ProgressBar View 普通进度条、显示在标题栏上的进度条 14、RatingBar View 评级 15、 SeekBar 拖动条,音量调节效果 16、ScrollView 、HorizontalScrollView 垂直和水平滚动条 17、ScrollView 、HorizontalScrollView 垂直和水平滚动条 18、ExpandableListView 分组可展开收缩的ListView 19、Notification 状态栏通知 20、GridView、ImageSwitcher 21、SmsManager 消息管理器,发短信(这里是模拟器只能给其它模拟器发短信) 22、Intent Action、Category属性 测试 23、系统 Action、Category属性 24、ClipDrawable 徐徐展开的风景 25、AnimationDrawable 会动的图片 26、Menu、SubMenu、ContextMenu xml配置menu 27、Attribute 自定义view的duration属性 控制图片的透明度 28、Bitmap、BitmapFactory 图形与图像处理 29、Canvas 绘制自定义图形 30、Canvas 采用双缓存实现画图板 31、SharedPreference 简单的key-value数据存取 32、SQLiteDatabase 安卓客户端的嵌入式数据库 33、GestureDetector + ViewFlipper实现翻页效果 34、GestureLiberay 自定义手势 35、GestureLiberay 通过自定义的手势实现用户操作 36、TextToSpeech 语音朗读 37、ContentProvider、ContentResolver 应用之间共享数据 38、 Service 相当于没有界面的activity 39、Activity与Service运行中通信 40、Service 相当于没有界面的activity 41、AIDL Service android中的跨进程调用 客户端,服务端见AidlService 42、BroadcastReceiver 接收广播消息 43、非UI线程中不能操作UI线程中的View测试 44、ImageSwitcher animation gesture实现可以滑动的跑马灯 45、下载状态栏显示下载进度 46、Gallery3d效果 47、ListView 上拉加载更多效果 48、异步加载图片的二级缓存技术 49、QQ的好友列表展示效果 50、Fragment + ViewPager实现tab滑动切换 51、能够显示在桌面前面的的歌词效果 52、activity切换特效 立即下载

相关推荐

AndroidDemo:Android平台的多个功能模块的Demo

AndroidDemo Android平台的多个功能模块的Demo

关于Android数据库的简单Demo

SQLite是一个遵循关系数据库管理系统规范的软件库,它提供了一个嵌入式的数据库引擎。相对于其他数据库管理系统,SQLite具有简洁和轻量级的特点。本项目适合用作初次入门的Android小白以及完成作业的大学生。本项目具有较为简单的增删改查,内容较少,容易理解,仅仅是作业之需,并没有做多余的拓展。在文章的最后我会分享项目文件供大家参考学习进步。欢迎大家指出不足,不吝赐教。根据我老师提供的要求,本项目主要有两个button,一个是增加,另外一个是查询。删除和修改则在点击事件后。

m0_64036838的博客 827

Android 官方 demo 介绍 - 安卓程序员规范开发必看,按谷歌框架进行学习

打包 APP

AndroidDemo 开源项目教程

AndroidDemo 开源项目教程 1. 项目的目录结构及介绍 AndroidDemo 项目的目录结构如下: AndroidDemo/ ├── app/ │ ├── build/ │ ├── libs/ │ ├── src/ │ │ ├── main/ │ │ │ ├── java/ │ │ │ │ └── com/ │ │ │ │ ...

gitblog_00314的博客 757

海上AI导航系统:技术架构与行业应用解析

计算机视觉与强化学习技术在海上导航系统中的应用正逐步改变传统航运业。通过多模态传感器融合技术,现代AI导航系统能够实现高精度的物体识别与实时路径规划,有效解决能见度依赖、决策延迟等核心痛点。以Orca AI的SeaPod系统为例,其结合了NVIDIA GeForce RTX 4070的边缘计算能力与多光谱协同识别技术,在恶劣环境下仍能保持稳定性能。这类系统不仅提升了航行安全性,还通过优化航线显著降低燃油消耗,在东京湾、马六甲海峡等繁忙水域展现出巨大价值。随着毫米波雷达融合方案的测试推进,未来海上导航将突破极

weixin_33597080的博客 355

手把手教你用Qt和QScada框架,从零搭建一个简易的工业组态监控界面

本文详细介绍了如何使用Qt和QScada框架从零搭建工业组态监控界面,涵盖环境配置、界面设计、动态数据绑定及高级功能实现。通过实战案例演示,帮助开发者快速掌握SCADA系统开发技巧,提升工业自动化项目的开发效率。

weixin_32932149的博客 340

安卓demo,新手开发教程之开发备忘录

这是一篇专门为初学者介绍android的博文 在这篇博文里面,可以体验如何运行APP,了解安卓虚拟器 以及做出一款备忘录APP 如何做备忘录应用,可以仅供参考

often9的博客 2633

有关SPSS中Fisher精确检验无法进行的解决方法(由于无法打开临时文件,因此无法进行计算)

最近在帮一个四年生完成她的毕业论文,在用SPSS进行R×C表检验的时候,发现Fisher精确检验的结果无法显示,提示为“由于无法打开临时文件,因此无法进行计算”,大概像下图一样。 (这图是从网上找的) 然...

chuyang37的博客 3万+

探秘Android-Demos:一个全面的Android开发示例库

探秘Android-Demos:一个全面的Android开发示例库 在寻找Android开发的学习资源时,有一个项目不容错过——。这是一个由开发者BoBoMEe维护的开源项目,包含了丰富的Android API及技术点实例,旨在帮助新手和有经验的开发者更好地理解和实践Android开发。 项目简介 Android-Demos是一个集合了多种Android特性和组件的实际代码示例的仓库。从基本的UI...

gitblog_00057的博客 383

香橙派5B-RK3588-NPU内核升级至0.9.8:RKLLM多模态部署实战

本文详细介绍了香橙派5B-RK3588设备NPU内核升级至0.9.8版本的完整流程,重点讲解了升级的必要性、两种升级方案(预编译包安装与自行编译内核)以及RKLLM SDK的安装配置。通过实战演示多模态模型转换与推理,显著提升AI计算性能,为嵌入式AI部署提供实用指南。

salt9的博客 1027

图解目标检测 之 YOLO 算法 最全原理详解

YOLO 一.背景 YOLO(You Only Look Once: Unified, Real-Time Object Detection),是Joseph Redmon和Ali Farhadi等人于2015年提出的基于单个神经网络的目标检测系统。在2017年CVPR上,Joseph Redmon和Ali Farhadi又发表的YOLO 2,进一步提高了检测的精度和速度。 二.YOLO算法的网...

DFCED的博客 26万+

android demo例子大全

1、BeautifulRefreshLayout-漂亮的美食下拉刷新 https://github.com/android-cjj/BeautifulRefreshLayout/tree/BeautifulRefreshForFood 2、Material Design-动画风格的选项卡tab切换功能 https://github.com/neokree/MaterialTabs 3、TwinklingRefreshLayout-支持下拉刷新和上拉加载的RefreshLayout,自带越界回弹效果 h

qq_59125846的博客 8647

YOLOv11改进策略【独家融合改进】| 模型轻量化二次改进:StarNet + FreqFusion,极限降参,适用专栏内所有轻量化模型

FreqFusion是一种旨在解决密集图像预测任务中特征融合问题。

Limiiiing的博客 2125

Android P HIDL demo代码编写

之前的文章已经分析了HIDL服务的注册和调用,这篇文章来总结下一个HIDL的服务如何编写。 缩写HAL文件 首先要确认放置文件夹和接口的包名,因为这跟后面使用脚本生成一部分代码有关,一般默认的放在hardware/interfaces目录下,我们写一个简单的IDemo.hal (hardware/interface/demo/1.0/IDemo.hal) package android.hardware.demo@1.0; interface IDemo { init(int32_t l.

tovey2008的专栏 445

2026年CSP-J初赛真题及答案解析

2026年CSP-J初赛真题及题解

王老师青少年编程 1631

SAP ABAP CO核心扩展-ZCKMLQS 多物料工厂的评估数量结构报表(CKMLQS)

CKMLQS 只能查看单一物料工厂的评估数量结构,SAP 没有提供多物料工厂的评估数量结构报表。这篇文章将实现 CO核心扩展-ZCKMLQS 多物料工厂的评估数量结构报表。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 1090

android JNI 简单demo(2)之JNI demo 编写

http://blog.youkuaiyun.com/androidolblog/article/details/25559013

潭边一树 4532

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Android 下 编写自己第一个NDK Demo

废话不多说 首先新建一个项目 然后新建一个NDK工具类,然后内部声明native方法 之后就build project ,之后会得到中间文件,我们关注的是classes文件夹: 然后我们点出Android Studio 下面的Termina标签输入一下命令,首先进入classes文件夹下的debug文件下,然后输入javah命名 cd app\build\intermed

Tracy1024的博客 607

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

Android P HIDL demo代码编写 (原创)

之前的文章已经分析了HIDL服务的注册和调用,这篇文章来总结下一个HIDL的服务如何编写。 缩写HAL文件不格网 https://www.vbuge.com 首先要确认放置文件夹和接口的包名,因为这跟后面使用脚本生成一部分代码有关,一般默认的放在hardware/interfaces目录下,我们写一个简单的IDemo.hal (hardware/interface/demo/1.0/I...

keocce的博客 501

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

android添加hidl服务,Android P HIDL demo代码编写 (原创)

之前的文章已经分析了HIDL服务的注册和调用,这篇文章来总结下一个HIDL的服务如何编写。缩写HAL文件首先要确认放置文件夹和接口的包名,因为这跟后面使用脚本生成一部分代码有关,一般默认的放在hardware/interfaces目录下,我们写一个简单的IDemo.hal (hardware/interface/demo/1.0/IDemo.hal)package android.hardware...

weixin_30505255的博客 758

android studio 触摸锁,学习AndroidStudio布局,并编写一个图案解锁demo

目的:1.基本布局的了解2.各种布局方法的了解和练习3.利用xml进行开发开发思维:添加控件 9个点 图⽚ 20条线 图片ImageView显示图片 容器来管理子控件: FrameLayout LinearLayout RelativeLayout ConstraintsLayout手触摸事件 点亮:取消隐藏记录密码具体实施:获取容器视图:protected void onCreate(Bun...

weixin_32445717的博客 295

kotlin 编写的android mvvm demo 简单例子

project gradledependencies { classpath 'com.android.tools.build:gradle:3.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" }module gradleapply plugin: 'kotlin-android...

wangwei268的博客 1441

android hidl 视频教程,Android P HIDL demo代码编写 (原创),

Android P HIDL demo代码编写 (原创),之前的文章已经分析了HIDL服务的注册和调用,这篇文章来总结下一个HIDL的服务如何编写。缩写HAL文件首先要确认放置文件夹和接口的包名,因为这跟后面使用脚本生成一部分代码有关,一般默认的放在hardware/interfaces目录下,我们写一个简单的IDemo.hal (hardware/interface/demo/1.0/IDemo...

weixin_33594662的博客 202

android中注册代码怎么写,Android P HIDL demo代码编写 (原创)

之前的文章已经分析了hidl服务的注册和调用,这篇文章来总结下一个hidl的服务如何编写。缩写hal文件首先要确认放置文件夹和接口的包名,因为这跟后面使用脚本生成一部分代码有关,一般默认的放在hardware/interfaces目录下,我们写一个简单的idemo.hal (hardware/interface/demo/1.0/idemo.hal)package android.hardware...

weixin_39525243的博客 164

hidl 原理分析_Android P HIDL demo代码编写 (原创)

之前的文章已经分析了HIDL服务的注册和调用,这篇文章来总结下一个HIDL的服务如何编写。缩写HAL文件首先要确认放置文件夹和接口的包名,因为这跟后面使用脚本生成一部分代码有关,一般默认的放在hardware/interfaces目录下,我们写一个简单的IDemo.hal (hardware/interface/demo/1.0/IDemo.hal)package android.hardware...

weixin_39884492的博客 361
上一篇: IDEA kotlin项目报错 kotlin not configured
cdcdec
博客等级 码龄9年 8粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值