草庐IT

java - 获取 Android 手机上的用户行为(应用历史、浏览历史等)

coder 2023-11-30 原文

是否可以获取手机上的用户行为(例如 Alpesh 有一部 Android 手机,他使用多个应用程序、浏览器 YouTube 等)。无论他在手机上做什么,我都想从背后获取所有这些东西(他安装了哪些应用程序,他打开了哪个应用程序以及他在手机上搜索了什么,我想以编程方式获取所有这些数据,以便可以获取所有这些数据安卓)。

现在我知道安装的应用程序列表可以很容易地获取,但我想获取使用历史记录以及他在移动设备上所做的所有事情。

最佳答案

这不是代码解决方案,而是您问题的答案,因此您可以从某些地方着手。

在我看来,您的问题标题问的是两件事。

(part 1) Getting User Behavior on the Android Phone (part 2)(App History, Browse History etc)

1- 第一部分获取 Android 手机上的用户行为:

有一个概念叫做情境感知。简短描述;它是关于从手机收集不同的信息,如光传感器、运动传感器、声音、位置甚至用户行为等,并取决于您的应用程序要求和收集的信息:

  • 您可以通过云数据存储发送这些信息以供静态使用
  • 您可以让您的手机根据位置、运动或任何其他因素做(行为)不同的事情。
  • 等等

对于上下文感知,它是普适计算研究的一个开放领域。而且它不仅仅是要编写的几行代码,它通常是一个完整的解决方案,具体取决于需求。示例 我已经构建了一个上下文感知应用程序来收集来自不同位置的电话收集的噪音以用于研究目的,灵感来自 this framework ,但我很确定您可以找到其他框架,甚至可以构建自己的框架,就像我在我的案例中所做的那样。

提到的框架有some examples .

2- 第二部分是关于应用历史、浏览历史等:

这是可能的,但你仍然需要构建一个和平的软件(App)来从手机中收集所有这些信息(日志)。此后,您可以让手机在不同的条件下运行和/或再次通过云服务数据存储上的 RESTful API 发送它,没有限制。

问题是,没有现成的东西可以满足您的要求。即使您找到了框架,您仍然需要对其进行研究并进一步开展工作。

你可以根据你的要求找到不同的例子,比如收集浏览器历史,你可以在这里找到SO问题:
Get browser history and search result in android

或者获取已安装应用的列表:
How to get a list of installed android applications and pick one to run

我的意思是你需要一次解决小目标,最后把你的知识整合起来。

1 和 2 也可以相互关联,具体取决于您的成就。

结论

  1. 为您的项目设定目标。
  2. 定义项目的主要要求和任务。
  3. 研究您的选择(技术、成本、目标受众、我可以或不应该收集哪些数据、可以收集哪些数据、限制是什么、隐私问题等)。
  4. 将您的项目拆分为小 Assets 并尝试解决小问题/目标。
  5. 最后,您将能够将拼图放在一起并构建您的最终应用程序

关于java - 获取 Android 手机上的用户行为(应用历史、浏览历史等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35620341/

有关java - 获取 Android 手机上的用户行为(应用历史、浏览历史等)的更多相关文章

  1. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  2. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  3. ruby - 无法运行 Rails 2.x 应用程序 - 2

    我尝试运行2.x应用程序。我使用rvm并为此应用程序设置其他版本的ruby​​:$rvmuseree-1.8.7-head我尝试运行服务器,然后出现很多错误:$script/serverNOTE:Gem.source_indexisdeprecated,useSpecification.Itwillberemovedonorafter2011-11-01.Gem.source_indexcalledfrom/Users/serg/rails_projects_terminal/work_proj/spohelp/config/../vendor/rails/railties/lib/r

  4. ruby-on-rails - Rails 应用程序中的 Rails : How are you using application_controller. rb 是新手吗? - 2

    刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr

  5. ruby-on-rails - 使用 rails 4 设计而不更新用户 - 2

    我将应用程序升级到Rails4,一切正常。我可以登录并转到我的编辑页面。也更新了观点。使用标准View时,用户会更新。但是当我添加例如字段:name时,它​​不会在表单中更新。使用devise3.1.1和gem'protected_attributes'我需要在设备或数据库上运行某种更新命令吗?我也搜索过这个地方,找到了许多不同的解决方案,但没有一个会更新我的用户字段。我没有添加任何自定义字段。 最佳答案 如果您想允许额外的参数,您可以在ApplicationController中使用beforefilter,因为Rails4将参数

  6. java - 等价于 Java 中的 Ruby Hash - 2

    我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/

  7. ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容? - 2

    我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby​​中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R

  8. ruby - 在 Ruby 中用键盘诅咒数组浏览 - 2

    我正在尝试在Ruby中制作一个cli应用程序,它接受一个给定的数组,然后将其显示为一个列表,我可以使用箭头键浏览它。我觉得我已经在Ruby中看到一个库已经这样做了,但我记不起它的名字了。我正在尝试对soundcloud2000中的代码进行逆向工程做类似的事情,但他的代码与SoundcloudAPI的使用紧密耦合。我知道cursesgem,我正在考虑更抽象的东西。广告有没有人见过可以做到这一点的库或一些概念证明的Ruby代码可以做到这一点? 最佳答案 我不知道这是否是您正在寻找的,但也许您可以使用我的想法。由于我没有关于您要完成的工作

  9. ruby - 如何根据特征实现 FactoryGirl 的条件行为 - 2

    我有一个用户工厂。我希望默认情况下确认用户。但是鉴于unconfirmed特征,我不希望它们被确认。虽然我有一个基于实现细节而不是抽象的工作实现,但我想知道如何正确地做到这一点。factory:userdoafter(:create)do|user,evaluator|#unwantedimplementationdetailshereunlessFactoryGirl.factories[:user].defined_traits.map(&:name).include?(:unconfirmed)user.confirm!endendtrait:unconfirmeddoenden

  10. ruby - 简单获取法拉第超时 - 2

    有没有办法在这个简单的get方法中添加超时选项?我正在使用法拉第3.3。Faraday.get(url)四处寻找,我只能先发起连接后应用超时选项,然后应用超时选项。或者有什么简单的方法?这就是我现在正在做的:conn=Faraday.newresponse=conn.getdo|req|req.urlurlreq.options.timeout=2#2secondsend 最佳答案 试试这个:conn=Faraday.newdo|conn|conn.options.timeout=20endresponse=conn.get(url

随机推荐