# GNSS Positioning Using Mobile Devices with the Android Operating System
## 3 Materials and Methods  
As just described in the introduction section, many different tests were done both in static and kinematic conditions. Two different smartphones, the Huawei P10+ and the Samsung Galaxy S8+, were employed in these tests. Their main characteristics are summarized in Table 1, as well as those of the u-blox NEO M8T GNSS receiver, used as a comparison (reference) system. To generalize the results in terms of environmental conditions, two different test sites were investigated: the first test-site was one the rooves at Politecnico di Torino (Italy), an area where the noise and multipath effects are very high and where the satellite visibility is reduced due to the presence of other buildings. The second one was an open-sky site characterized by the absence of reflective surfaces, electromagnetic disturbances, and with optimal conditions for tracking satellites (e.g., no obstructions). These two sites, namely A and B, depicted in Figure 1, respectively, represent the two main conditions where a user works or tries to perform positioning activities. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Receiver** & **Huawei P10+** & **Samsung Galaxy S8+** & **u-blox NEO M8T** \\ \hline \hline \multirow{2}{*}{Image} & & & \\  & & & \\  & & & \\ \hline Constellation & GPS & GPS + GLONASS + BeiDou + Galileo & GPS + GLONASS + BeiDou \\ Observations & C/A, L1, SNR & C/A, L1, SNR & C/A, L1, SNR \\ Cost & \(\xi\) 300 & \(\xi\) 590 & \(\xi\) 70 \\ Weight [g] & 145 & 155 & 8.1 \\ Dimension [mm] & 145.3\(\times\)69.3\(\times\)7 & 148.9\(\times\)68.1\(\times\)8.0 & 40\(\times\)18\(\times\)8 \\ \hline \hline \end{tabular}
\end{table} 
Table 1: The instruments used in these tests. Figure 1: The two test sites: the place that represent the noisy environment (left, site A) and an undisturbed place (right, site B). Coupled with the two smartphones, the u-blox receiver was also used. This instrument needs software installed on an external device for collecting both the raw-measurements and the real-time results. There are many software available today on the market (e.g., those proposed in [19]) that can exploit the owner binary format (.ubx) for obtaining Receiver INdependent EXchange format (RINEX) files or real-time solutions. In this work, we used the RTKLIB suite (version 2.4.3) both for extracting the raw data, for converting them in RINEX (using the RTKCONV tool), and for performing the post-processing (using the RTKPOST tool) and real-time (using the RTKNAVI tool) solutions. This software is particularly interesting because it is an open source program package for standard and precise positioning with GNSS many constellations (GPS, GLONASS, Galileo, BeiDou, QZSS, SBAS) and supports various positioning modes with GNSS for both real-time and post-processing approaches: single, differential GPS/GNSS (DGPS/DGNSS), kinematic, static, moving-baseline, fixed, PPP-kinematic (precise point positioning kinematic), PPP-static, and PPP-fixed. It also includes a graphical user interface (GUI) and command-line user interface (CUI) with many library functions related to satellite and navigation system functions, stream data input and output functions, standard, real-time, and post-processing positioning. This software, as already described in the literature [20], is particularly interesting because it allows managing the stream data coming from a network of permanent stations using the Networked Transport of RTCM via Internet Protocol (NTRIP) authentication. In addition, RTKLIB allows fixing the phase ambiguities as integer values, applying the modified Least-squares AMBiguity Decorrelation Adjustment (LAMBDA) method (MLAMBDA) [21], an interesting and very famous technique, especially for real-time applications, where computational speed is mandatory [22]. Unfortunately, RTKLIB is not useful for the smartphone because it is not still available as an app. Thus, in this case, the GEO++ RINEX app was used to help to get the raw measurements and to store these into a RINEX file.