问题标签 [android-framework]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
604 浏览

android-framework - 安卓应用框架

我是 android 应用程序开发的新手。我正在寻找构建一个传统的数据库驱动的应用程序,该应用程序将从本地数据存储中存储/检索数据。任何人都可以帮助我开始使用框架或“有人可以指点我执行此操作的示例应用程序吗

0 投票
1 回答
1417 浏览

android - JNI .cpp 文件如何向 Android 中的 Java 框架发送事件

我已经在 MotionSensors 上注册了一个监听器,现在每当调用 Motion change 方法“onSensorChange()”时。

我知道这些调用来自 SensorManager.java 类。我想知道这些传感器更改事件是如何来自 JNI,JNI 如何触发更改事件并将其发送到 Framework(SensorManager.java)。

0 投票
1 回答
450 浏览

android - 向 Android 2.3 添加屏幕截图功能

我正在为 Android 2.3 实现屏幕截图功能(我知道 ICS 已经有屏幕截图功能)。我使用 Android Screenshot Library(简称 ASL)项目作为基础,我正在修改它以满足我的需要。我也可以为它自由修改Android的源代码。目标是拥有类似于 Galaxy Note 的功能:您使用按键组合截取屏幕截图,然后显示一个编辑器,允许您随意更改图像。您可以在任何地方截取屏幕截图:在主屏幕上、在使用应用程序时等。

现在我有 3 个工作部分:一个捕获屏幕缓冲区的本机二进制文件,一个与本机二进制文件对话并检索屏幕截图的服务,以及编辑器。但我不确定如何将这三件事结合在一起。可以将本机二进制文件添加到 Android 预构建部分,并且可以修改 init.rc 以在启动时以 root 身份执行它(尽管我仍然必须这样做)。编辑器是一个简单的应用程序,也可以包含在 Android 中。但我仍然不知道如何处理该服务。

理想情况下,我想捕获一个按键组合(比如电源按钮和降低音量,或者可能是前面的两个按钮),这将触发服务。然后,该服务将调用二进制文件以截取屏幕截图并启动意图以打开带有屏幕截图的编辑器。但是,据我所知,服务无法捕捉按键。此外,服务必须绑定某个地方才能知道何时必须截屏,所以我想我应该修改Android本身以启动服务并在启动时绑定到它,但是缺少有关Android源代码的文档我不知道从哪里开始寻找。

有谁知道Android的哪个组件负责按键,我应该在哪里绑定我的服务?我的方法甚至可能吗?

提前感谢您提供任何可能的帮助。

0 投票
1 回答
163 浏览

android - AOSP:不可聚焦但可长时间点击的 TextView

我刚刚下载了 AOSP 并为我的目的修改了 TextView。

我在 TextView 中添加了一个 LongClick 侦听器,它显示了一个简单的 Toast。

由于我修改了 Android 框架,它反映到了所有的应用程序和整个 Android 操作系统中。

我现在遇到了一个奇怪的问题,TextView 在某些地方获得焦点,而其他底层小部件没有获得任何焦点。这会产生很多问题。

例如:在“设置”应用程序中,“Wi-Fi”文本正在接收焦点,但除非单击 Wi-Fi 列表项中的任何空白区域,否则我无法输入 wi-fi 设置。(我希望清楚!)

另一个例子:我无法选择单选按钮,因为单选按钮对应的文本获得焦点。

所以我的问题是:

  1. 有什么方法可以使 TextView 无法聚焦但接收 Long Click 事件?
  2. 有什么办法可以将焦点传递给父布局?
  3. 你还有什么方法可以推荐吗?

(PS:请不要说我做的是对是错,这只是对我想要达到的目标的可行性测试。)

0 投票
1 回答
11095 浏览

android - 构建android框架资源

我正在尝试从开源存储库构建自定义 Android 映像,并在 android 基本框架代码中进行更改(资源和 Java 代码更改),我有几个关于如何构建我的更改而不必清理并重建整个系统。

我对它的理解是,我可以mmm frameworks/base在进行更改后执行此操作,并且会自动framework-res.apkout/target/product/<my-config>/system/framework/.

但它看起来mmm frameworks/base什么都不做。我必须手动执行mmm frameworks/base/core/res才能framework-res.apk编译,然后重做mmm frameworks/base以重新编译 JAR。

这正常吗?为什么mmmframeworks/base recompile everything? Plus, the/out/target/common/R/com/android/internal/R.javafile that is used by Eclipse to locate the resources is never re-generated unless I do a whole不做clobber;制作which takes forever. How can I simply re-generate theR.java` 文件。

附加问题:我想将一些第三方 APK 添加到我的 ROM 中,我将它们与我的主 mk 脚本中包含/vendor/<vendor-name>/的文件一起放入。Android.mkapk 被复制到/out/target/product/<my-config>/system/app,但不包含在system.img映像中。这是为什么?

0 投票
2 回答
2564 浏览

android - android 代码中存储了手机的名称/型号,它是如何存储在那里的?

我想知道的是 Android 手机在连接为MTP时如何发布它的名称,以便它出现在我的计算机上。我相信mtp/usb驱动程序从上层获取价值,例如框架层中的mtp/usb java 类。我想尝试通过 Android 代码本身更改出现在计算机上的名称。

提前致谢。

0 投票
1 回答
1486 浏览

android - 在 Android 中为 /data/sdcard 设置默认文件/目录权限

我目前正在通过对 Android 的源代码进行一些我需要的修改,为我的一台设备创建自定义版本的 Android-gingerbread。

我想知道是否有任何方法可以将在特定路径下创建的所有文件/目录(即 /data/sdcard 在我的情况下)设置为始终具有 rwxrwxrwx 权限?我需要这个,因为我尝试下载第三方应用程序市场,发现它在 /data/sdcard 上创建了一个自定义目录并将应用程序的 apk 下载到它,然后尝试安装它们但这失败了,因为该目录和 apk 有权限rwx-------- 这会导致 PackageInstaller 无法访问该 apk 并导致解析错误。

我已经通过修改文件权限验证了可以安装应用!

让我知道是否有人可以帮助我解决这个问题。

谢谢。

0 投票
2 回答
348 浏览

android - 调用 onCreate、onPause、onResume 等的代码在哪里

据我了解,onCreate、onPause、onResume 等都是在主 UI 线程中执行的。如果其他一些线程(android 框架代码的一部分)将这些调用作为消息附加到 UI 线程的队列,这是可能的。我想知道框架中的哪个线程/进程和哪个类将这些消息附加到 UI 线程的队列中?应该有一些 'handleMessage' 函数来执行 'myActivity.onPause'。我找不到它。如果我的理解有误,请纠正我。

0 投票
2 回答
5408 浏览

android - Android 密钥处理(框架)

框架的某些部分对我来说还不是很清楚。我对输入事件的流程(内核 -> Eventhub -> InputReader -> InputDispatcher -> ...)非常熟悉。

情况

(要求:在不更改 Android 框架的情况下处理输入键。) 我想处理来自设备(键盘/游戏板/控制器/...)的键事件,但有一些要求。一方面,我不想更改 Android 框架。这意味着,我不想像处理 home 键的地方WindowManagerPolicy那样扩展 及其功能。interceptKeyBeforeDispatching这将导致关键事件被分派到应用层,这很好。缺点是,我这里还有一个棘手的要求。示例:当我玩 Angry Birds 并按下连接的输入设备上的 GoToAlpha 按钮时,必须启动 Alpha 应用程序。愤怒的小鸟不知道 GoToAlpha 是哪个按钮,不会处理/识别它,例如不会广播任何意图来启动我的 Alpha 应用程序。

问题

有没有办法在我的(自定义)键事件被调度后处理它,知道前台的应用程序无法处理键?

我的(失败的)解决方案

  • 创建一个将处理关键事件的服务。这是不可能的,因为像 Angry Birds 这样的应用程序不会绑定到我的服务,并且关键事件不会被我的服务捕获。如果我错了,请提供更多信息:)。

  • 创建一个外部库,允许我的应用程序的活动从我自己的 ActivityBase 继承。所有关键事件和默认行为都可以在这里处理。不利的一面是,现有应用程序将不支持我的自定义键事件,因为它们不使用该库。

  • 在我看来,扩展框架是最干净的解决方案,但这将导致无法满足我的要求。

任何帮助或有用的信息将不胜感激

额外的

如果第一个问题可以以某种方式解决.. 我想自定义我Intent的 GoToAlpha 按钮。这意味着.. 默认情况下,Alpha 应用程序将启动,但在用户自定义后,Beta 应用程序将从现在开始.. 有什么想法吗?

谢谢

0 投票
2 回答
344 浏览

android - Android中的日期格式错误

我正在使用DateFormat.format("EEEE d MMMM", new Date()),对于阿拉伯语,它显示为:الثلاثاء 29 ٥

谁能告诉我如何在特定的语言环境(已设置)数字中获得 29,或者至少如何忽略当前的语言环境设置并仅针对所有语言环境以英语显示日期。