当前位置: 首页 > news >正文

在Ubuntu上为Android系统内置Java应用程序测试Application Frameworks层的硬件服务(老罗学习笔记6)...

一:Eclipse下

1.创建工程:

 ----

2.创建后目录

 3.添加java函数

 4.在src下创建package,在package下创建file

 5.res---layout下创建xml文件,命名main

 6.project下清楚错误

 7.位解决错误

 ②

 8.总体目录

 

9.当删除工程后,可以import再重新导入工程。 

 二:源码下

将Hello目录拷贝至packages/experimental目录,新增Android.mk文件:
     USER-NAME@MACHINE-NAME:~/Android/packages/experimental$ vi Android.mk
Android.mk的文件内容如下:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
 
LOCAL_MODULE_TAGS := optional
 
LOCAL_SRC_FILES := $(call all-subdir-java-files)
 
LOCAL_PACKAGE_NAME := Hello
 
include $(BUILD_PACKAGE)
②. 编译:
USER-NAME@MACHINE-NAME:~/Android$ mmm  packages/experimental/Hello
编译成功后,便可以在out/target/product/generic/system/app目录下看到Hello.apk文件了。
    ③. 重新打包系统镜像文件system.img:
USER-NAME@MACHINE-NAME:~/Android$ make snod
    重新打包后的system.img文件就内置了Hello.apk文件了。
④. 运行Android模拟器:
USER-NAME@MACHINE-NAME:~/Android$ emulator -kernel kernel/common/arch/arm/boot/zImage &
在Home Screen中可以看到Hello应用程序:
 
打开Hello应用程序:
 
点击Read按钮,可以从HelloService中读取硬件寄存器val的值;点击Clear按钮,可以清空文本框的值;在文本框中输入一个数值,再点击Write按钮,便可以将这个值写入到硬件寄存器val中去,可以再次点击Read按钮来验证是否正确写入了值。
至此,我们就完整地学习了在Android的Linux内核空间添加硬件驱动程序、在Android的硬件抽象层添加硬件接口、在Android的Application Frameworks层提供硬件服务以及在Android的应用层调用硬件服务的整个过程了,希望能为读者进入Android系统提供入门帮助。重新学习整个过程,请参考 Android硬件抽象层(HAL)概要介绍和学习计划。(老罗学习笔记)

 

 

 

 

 

 

 

 

 

 

 

----------------------------

转载于:https://www.cnblogs.com/Ph-one/p/4440259.html

相关文章:

  • Linux线程属性总结
  • Linux 线程属性函数总结
  • Linux设备管理之权限倾斜——mem、proc、devfs、sysfs、udev(下)
  • cdev[典]
  • devfs,proc,udev
  • AIDL与stub
  • Android 系统的四层结构
  • STM32硬件复位时间
  • allegro添加多个过孔
  • 珠宝
  • Unable to open c
  • allegro飞线隐藏
  • 23.allegro中钻孔[原创]
  • mediatek
  • 24.allegro中光绘gerber[原创]
  • SegmentFault for Android 3.0 发布
  • 「面试题」如何实现一个圣杯布局?
  • 2017 年终总结 —— 在路上
  • go append函数以及写入
  • Java 网络编程(2):UDP 的使用
  • miniui datagrid 的客户端分页解决方案 - CS结合
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Odoo domain写法及运用
  • orm2 中文文档 3.1 模型属性
  • Service Worker
  • Transformer-XL: Unleashing the Potential of Attention Models
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 工作踩坑系列——https访问遇到“已阻止载入混合活动内容”
  • 记一次用 NodeJs 实现模拟登录的思路
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 微信小程序开发问题汇总
  • 我的zsh配置, 2019最新方案
  • 小程序、APP Store 需要的 SSL 证书是个什么东西?
  • 优秀架构师必须掌握的架构思维
  • 正则与JS中的正则
  • 【云吞铺子】性能抖动剖析(二)
  • HanLP分词命名实体提取详解
  • Linux权限管理(week1_day5)--技术流ken
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 新年再起“裁员潮”,“钢铁侠”马斯克要一举裁掉SpaceX 600余名员工 ...
  • ​LeetCode解法汇总307. 区域和检索 - 数组可修改
  • #13 yum、编译安装与sed命令的使用
  • ( 10 )MySQL中的外键
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (1)(1.9) MSP (version 4.2)
  • (30)数组元素和与数字和的绝对差
  • (论文阅读30/100)Convolutional Pose Machines
  • (篇九)MySQL常用内置函数
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (原創) 系統分析和系統設計有什麼差別? (OO)
  • (转)真正的中国天气api接口xml,json(求加精) ...
  • .Net FrameWork总结
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖