-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
5f40975
commit f58a739
Showing
160 changed files
with
14,832 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
# Contributing Guidelines |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1,72 @@ | ||
# datahop-d2d-android | ||
# DataHop Device-to-Device Android Library | ||
|
||
This library implements a Device-to-Device (D2D) connectivity solution for Android devices used by the DataHop Network platform. | ||
[DataHop](https://datahop.network) is a new platform aimed at exploring the potential of | ||
a user-operated, smartphone-centric content distribution model | ||
for user applications in contrast with the traditional client-server | ||
model, that is used by the majority of mobile data transfers today. | ||
In particular, we assume source nodes that are updated directly from the content provider (e.g., BBC, CNN), whenever | ||
updates are available; destination nodes are then directly updated by source nodes in a D2D manner. We leverage on sophisticated information-aware and application-centric connectivity techniques to distribute content between mobile devices in densely-populated urban environments or rural areas where Internet connectivity is poor. | ||
|
||
### Information-Centric and Application-Aware Connectivity | ||
|
||
This library uses the WiFi Direct specification to exchange application content updates. WiFi Direct provides all the features required to provide smart connectivity between users and transfer content without infrastructure participation. | ||
However current Android WiFi Direct Android implementation still has one drawback: it requires user | ||
participation to accept every connection. | ||
In order toavoid any user participation allowing DataHop to run in the background, | ||
seamlessly to users, this library uses a hybrid mode according to which source devices create a WiFi Direct network using the previously described WiFi | ||
Direct Autonomous Mode and destination devices connect to it as a | ||
normal WiFi connection (legacy connection). | ||
|
||
### BLE Content Advertisement | ||
This library exploits the so-well known and stable [bluetooth low energy | ||
(BLE)](https://developer.android.com/guide/topics/connectivity/bluetooth-le) beacons technology in order to exchange information related | ||
to the device’s applications prior to the WiFi Direct connection, as | ||
stated in the figure. This information may include the list of content | ||
available, but also other metadata such as latest update of the content, | ||
e.g., BBC-Sports-1100am or application name, transport protocol, port | ||
number, etc. This way, users can share necessary application information before forming groups. The whole communication process does | ||
not require user interaction and can be performed totally transparent | ||
to the user. Also, the BLE beacon technology is a standard compatible | ||
with not only any Android device but also with iOS devices and any | ||
other wireless device compliant to the standard. | ||
|
||
<p align="center"><img alt="connectivity" title="Source and Destination nodes connection and Content Advertisement | ||
through BLE" src="./connectivity.png" width=40%></p> | ||
|
||
## Objectives | ||
|
||
* [x] User devices must connect between them without infrastructure participation and without interrupting connectivity to the main infrastructure (e.g., WiFi access points or the | ||
cell network). | ||
* [x] User devices must discover services/applications | ||
and content (available in nearby devices) before actually connecting to those devices. This will save both time and energy from the | ||
process. | ||
* [x] Connectivity should be transparent (and run as | ||
a background process) to the user (i.e., it should not require the | ||
users’ manual intervention. | ||
* [x] Connectivity must take into account power consumption and must implement mechanisms to avoid battery depletion. | ||
|
||
# Installation | ||
|
||
# Usage | ||
|
||
# Demo file-sharing application | ||
|
||
# Others | ||
|
||
# How to make contributions | ||
Please read and follow the steps in [CONTRIBUTING.md](/CONTRIBUTING.md) | ||
|
||
# License | ||
|
||
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at | ||
|
||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. | ||
|
||
# Acknowledgment | ||
|
||
This software is part of the NGI Pointer project "Incentivised Content Dissemination at the Network Edge" that has received funding from the European Union’s Horizon 2020 research and innovation programme under grant agreement No 871528 | ||
|
||
<p align="center"><img alt="ngi logo" src="./Logo_Pointer.png" width=40%> <img alt="eu logo" src="./eu.png" width=25%></p> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
// Top-level build file where you can add configuration options common to all sub-projects/modules. | ||
|
||
buildscript { | ||
|
||
repositories { | ||
google() | ||
jcenter() | ||
|
||
} | ||
dependencies { | ||
classpath 'com.android.tools.build:gradle:4.1.2' | ||
classpath 'com.google.gms:google-services:4.0.2' | ||
|
||
// NOTE: Do not place your application dependencies here; they belong | ||
// in the individual module build.gradle files | ||
} | ||
} | ||
|
||
allprojects { | ||
repositories { | ||
google() | ||
jcenter() | ||
maven { | ||
url 'https://maven.google.com/' | ||
} | ||
|
||
} | ||
} | ||
|
||
task clean(type: Delete) { | ||
delete rootProject.buildDir | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
#!/bin/bash | ||
|
||
./gradlew installDebug | ||
for var in "$@" | ||
do | ||
# adb -s $var shell am start -n io.fluentic.ubicdn/.ui.splash.SplashActivity | ||
# adb -s $var shell am startservice -n io.fluentic.ubicdn/.data.UbiCDNService --ez "source" 0 --ez "wd" 0 --ez "bt" 1 | ||
adb -s $var shell am start -n network.datahop.localsharing/.ui.splash.SplashActivity | ||
done |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/build |
Oops, something went wrong.