Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

android: why is the binary that large (200Mb and 600Mb) #18625

Closed
paulrouget opened this issue Sep 25, 2017 · 19 comments
Closed

android: why is the binary that large (200Mb and 600Mb) #18625

paulrouget opened this issue Sep 25, 2017 · 19 comments

Comments

@paulrouget
Copy link
Contributor

@paulrouget paulrouget commented Sep 25, 2017

663M target/armv7-linux-androideabi/debug/libservo.so
213M target/armv7-linux-androideabi/release/libservo.so
@emilio
Copy link
Member

@emilio emilio commented Sep 25, 2017

I guess the easiest would be to check it with bloaty or other tool like that to see what the size ends up being.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 25, 2017

Hmm, apparently, bloaty doesn't work on a ELF binary from a MacOS.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 25, 2017

My bad. It's working.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 25, 2017

     VM SIZE                       FILE SIZE
 --------------                 --------------
   0.0%       0 .debug_info      82.7Mi  38.8%
  59.9%  36.6Mi .text            36.6Mi  17.2%
   0.0%       0 .debug_loc       22.2Mi  10.4%
   0.0%       0 .debug_str       12.5Mi   5.9%
   0.0%       0 .strtab          10.8Mi   5.1%
  16.3%  9.98Mi .data            9.98Mi   4.7%
   0.0%       0 .symtab          8.89Mi   4.2%
   0.0%       0 .debug_ranges    6.78Mi   3.2%
   0.0%       0 .debug_line      5.62Mi   2.6%
   6.1%  3.72Mi .dynstr          3.72Mi   1.7%
   6.0%  3.64Mi .rodata          3.64Mi   1.7%
   5.5%  3.34Mi .ARM.extab       3.34Mi   1.6%
   1.8%  1.08Mi .rel.dyn         1.08Mi   0.5%
   0.0%       0 .debug_frame     1.01Mi   0.5%
   1.2%   719Ki [Other]           946Ki   0.4%
   0.0%       0 .debug_abbrev     919Ki   0.4%
   1.5%   907Ki .data.rel.ro      907Ki   0.4%
   1.1%   680Ki .dynsym           680Ki   0.3%
   0.8%   471Ki .ARM.exidx        471Ki   0.2%
   0.0%       0 .debug_pubnames   431Ki   0.2%
   0.0%      12 [None]                0   0.0%
 100.0%  61.1Mi TOTAL             213Mi 100.0%
@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Sep 25, 2017

Looks like a large part of this is debug info. @paulrouget Is this in release mode?

@froydnj
Copy link
Contributor

@froydnj froydnj commented Sep 25, 2017

@paulrouget's numbers from bloaty and the numbers cited in the initial report for release-mode match up, so I'd say yes.

What does bloaty -d symbols -n 100 libservo.so say? That would at least help identify the largest functions/objects. 36M+ of .text is almost as much as Firefox for Android's libxul.so... Nearly 10M of .data also seems a bit outlandish.

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Sep 25, 2017

This isn’t specific to Android, I get similar results for target/release/servo on Linux x64.

It looks like more than half the size is debug info, but I don’t understand why that’s included. http://doc.crates.io/manifest.html#the-profile-sections says that the default value for profile.release.debug is false, and I don’t see anything that changes it. We also have a debug-mozjs config that also defaults to false.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 25, 2017

What does bloaty -d symbols -n 100 libservo.so say?

     VM SIZE                                                                                        FILE SIZE
 --------------                                                                                  --------------
  33.0%  20.2Mi [Unmapped]                                                                         172Mi  80.8%
  60.2%  36.8Mi [Other]                                                                           36.7Mi  17.2%
   0.3%   163Ki ref.1                                                                              163Ki   0.1%
   0.2%   153Ki ref.2RU                                                                            153Ki   0.1%
   0.2%   152Ki ref.0                                                                              152Ki   0.1%
   0.2%   130Ki ref.ZG                                                                             130Ki   0.1%
   0.2%   125Ki _ZN7inflate13InflateStream10next_state17h7ff5ba2ab128569aE                         125Ki   0.1%
   0.2%   119Ki _ZN19brotli_decompressor10dictionary17kBrotliDictionary17h4b0234b79d9da019E        119Ki   0.1%
   0.2%   119Ki kBrotliDictionary                                                                  119Ki   0.1%
   0.2%  98.4Ki ref.2                                                                             98.4Ki   0.0%
   0.2%  96.4Ki _ZN71_$LT$html5ever..tree_builder..TreeBuilder$LT$Handle$C$$u20$Sink$GT$$GT$4ste  96.4Ki   0.0%
   0.1%  85.8Ki ref.Yf                                                                            85.8Ki   0.0%
   0.1%  64.6Ki _ZN6script3dom6create26create_native_html_element17ha9a016e048fa0fd3E             64.6Ki   0.0%
   0.1%  64.0Ki _ZN6script18unpremultiplytable19UNPREMULTIPLY_TABLE17hf3e17ab6127a7c23E           64.0Ki   0.0%
   0.1%  59.5Ki _ZN71_$LT$html5ever..tree_builder..TreeBuilder$LT$Handle$C$$u20$Sink$GT$$GT$4ste  59.5Ki   0.0%
   0.1%  55.1Ki _ZN89_$LT$constellation..constellation..Constellation$LT$Message$C$$u20$LTF$C$$u  55.1Ki   0.0%
   0.1%  54.7Ki ft_adobe_glyph_list                                                               54.7Ki   0.0%
   0.1%  53.3Ki propsVectorsTrie_index                                                            53.3Ki   0.0%
   0.1%  52.5Ki _ZN9webrender14render_backend13RenderBackend3run17heb526739de06e0f3E              52.5Ki   0.0%
   0.1%  50.2Ki _ZN92_$LT$regex..exec..ExecNoSync$LT$$u27$c$GT$$u20$as$u20$regex..re_trait..Regu  50.2Ki   0.0%
   0.1%  49.3Ki _ZN6canvas12webgl_thread9WebGLImpl5apply17h96d3a2d7c3ee0416E                      49.3Ki   0.0%
   0.1%  49.3Ki _ZN6canvas12webgl_thread9WebGLImpl5apply17h9a983a1d26fdfb51E                      49.3Ki   0.0%
   0.1%  48.3Ki ref.vE                                                                            48.3Ki   0.0%
   0.1%  47.9Ki _ZN9bluetooth16BluetoothManager5start17h63882505cdfab99aE                         47.9Ki   0.0%
   0.1%  47.9Ki _ZN52_$LT$html5ever..tokenizer..Tokenizer$LT$Sink$GT$$GT$4step17hcf27ea27150f15b  47.9Ki   0.0%
   0.1%  47.9Ki _ZL9InterpretP9JSContextRN2js8RunStateE                                           47.9Ki   0.0%
   0.1%  47.9Ki _ZN84_$LT$ipc_channel..platform..inprocess..OsIpcSender$u20$as$u20$core..clone..  47.9Ki   0.0%
   0.1%  44.2Ki _ZN126_$LT$webdriver_server..Handler$u20$as$u20$webdriver..server..WebDriverHand  44.2Ki   0.0%
   0.1%  43.3Ki _ZN256_$LT$script_traits..script_msg.._IMPL_DESERIALIZE_FOR_ScriptMsg..$LT$impl$  43.3Ki   0.0%
   0.1%  43.1Ki ref.5                                                                             43.1Ki   0.0%
   0.1%  41.8Ki _ZN52_$LT$html5ever..tokenizer..Tokenizer$LT$Sink$GT$$GT$4step17h0d388219648e374  41.8Ki   0.0%
   0.1%  41.6Ki _ZN260_$LT$script_traits.._IMPL_DESERIALIZE_FOR_ConstellationControlMsg..$LT$imp  41.6Ki   0.0%
   0.1%  41.1Ki _ZN48_$LT$jpeg_decoder..decoder..Decoder$LT$R$GT$$GT$15decode_internal17hf34f273  41.1Ki   0.0%
   0.1%  38.7Ki propsTrie_index                                                                   38.7Ki   0.0%
   0.1%  38.2Ki _ZN2js10selfhostedL4dataE                                                         38.2Ki   0.0%
   0.1%  38.1Ki _ZN168_$LT$style..stylesheets..rule_parser..NestedRuleParser$LT$$u27$a$C$$u20$$u  38.1Ki   0.0%
   0.1%  37.4Ki _ZN252_$LT$canvas_traits..webgl.._IMPL_DESERIALIZE_FOR_WebGLCommand..$LT$impl$u2  37.4Ki   0.0%
   0.1%  37.1Ki _ZN6script3dom8bindings7codegen8Bindings18TestBindingBinding22TestDictionaryDefa  37.1Ki   0.0%
   0.1%  37.0Ki _ZN5style10properties19animated_properties16AnimatedProperty6update17h499582e99c  37.0Ki   0.0%
   0.1%  36.9Ki _ZN86_$LT$style..properties..PropertyDeclaration$u20$as$u20$style_traits..values  36.9Ki   0.0%
   0.1%  35.7Ki _ZN6script13script_thread12ScriptThread20handle_webdriver_msg17hff38fe2b585cbdff  35.7Ki   0.0%
   0.1%  34.6Ki _ZN48_$LT$jpeg_decoder..decoder..Decoder$LT$R$GT$$GT$15decode_internal17h86fc492  34.6Ki   0.0%
   0.1%  34.3Ki _ZN5gleam6ffi_gl2Gl9load_with17h2fe42db288c2ad71E                                 34.3Ki   0.0%
   0.1%  33.9Ki _ZN5gleam6ffi_gl2Gl9load_with17h52c5c1c92bb7e6dfE                                 33.9Ki   0.0%
   0.1%  33.9Ki _ZN5gleam6ffi_gl2Gl9load_with17h5ea8686a7a6e7721E                                 33.9Ki   0.0%
   0.1%  33.9Ki _ZN5gleam6ffi_gl2Gl9load_with17hd8f3784a055f8bb0E                                 33.9Ki   0.0%
   0.1%  33.6Ki _ZN5image8dynimage4load17h624d2b065e23e8bdE                                       33.6Ki   0.0%
   0.1%  33.6Ki _ZN5image8dynimage4load17he6063259a958520dE                                       33.6Ki   0.0%
   0.1%  33.3Ki _ZN3gfx12display_list31_IMPL_SERIALIZE_FOR_DisplayItem82_$LT$impl$u20$serde..ser  33.3Ki   0.0%
   0.1%  32.5Ki _ZN168_$LT$style..stylesheets..rule_parser..NestedRuleParser$LT$$u27$a$C$$u20$$u  32.5Ki   0.0%
   0.1%  32.3Ki _ZN86_$LT$style..properties..PropertyDeclaration$u20$as$u20$style_traits..values  32.3Ki   0.0%
   0.1%  32.1Ki _ZN5style10properties19ComputedValuesInner24computed_value_to_string17hd7655f77c  32.1Ki   0.0%
   0.1%  32.0Ki _ZL13gInvSqrtTable                                                                32.0Ki   0.0%
   0.1%  32.0Ki _ZL7gDigits                                                                       32.0Ki   0.0%
   0.1%  31.9Ki _ZN3net15resource_thread22ResourceChannelManager11process_msg17h2bd93be4cd78f134  31.9Ki   0.0%
   0.1%  31.9Ki _ZN13layout_thread12LayoutThread13handle_reflow17h7c914d45ba92eae5E               31.9Ki   0.0%
   0.1%  31.3Ki _ZN9webrender5frame5Frame12flatten_item17h496f1c84bf14d297E                       31.3Ki   0.0%
   0.0%  30.6Ki _ZN2sh22InsertBuiltInFunctionsEj12ShShaderSpecRK18ShBuiltInResourcesRNS_12TSymbo  30.6Ki   0.0%
   0.0%  30.5Ki _ZN5style10properties19animated_properties14AnimationValue16from_declaration17hc  30.5Ki   0.0%
   0.0%  30.5Ki _ZN3net15resource_thread18create_http_states17ha3001feaadc73150E                  30.5Ki   0.0%
   0.0%  30.1Ki _ZN54_$LT$xml5ever..tokenizer..XmlTokenizer$LT$Sink$GT$$GT$4step17h589222df0bbdd  30.1Ki   0.0%
   0.0%  30.0Ki _ZN54_$LT$xml5ever..tokenizer..XmlTokenizer$LT$Sink$GT$$GT$4step17h7930500d25c3f  30.0Ki   0.0%
   0.0%  29.9Ki _ZN89_$LT$constellation..constellation..Constellation$LT$Message$C$$u20$LTF$C$$u  29.9Ki   0.0%
   0.0%  28.7Ki _ZN6script3dom8bindings7codegen8Bindings18TestBindingBinding14TestDictionary3new  28.7Ki   0.0%
   0.0%  28.2Ki _ZN9webrender13frame_builder12FrameBuilder5build17hec1e60eb5e8ef93cE              28.2Ki   0.0%
   0.0%  28.2Ki _ZN9webrender8renderer8Renderer3new17h2401898fced36dbdE                           28.2Ki   0.0%
   0.0%  28.1Ki decomp_data                                                                       28.1Ki   0.0%
   0.0%  28.0Ki _ZN6canvas19canvas_paint_thread17CanvasPaintThread5start28_$u7b$$u7b$closure$u7d  28.0Ki   0.0%
   0.0%  27.9Ki _ZN3net14storage_thread14StorageManager5start17h5188541411de955aE                 27.9Ki   0.0%
   0.0%  27.0Ki _ZN8devtools10run_server20handle_network_event17h605bd2ab549cd84cE                27.0Ki   0.0%
   0.0%  26.8Ki _ZN12_GLOBAL__N_115WasmTokenStream4nextEv                                         26.8Ki   0.0%
   0.0%  26.7Ki _ZN280_$LT$webrender_api..display_item.._IMPL_DESERIALIZE_FOR_SpecificDisplayIte  26.7Ki   0.0%
   0.0%  26.5Ki _ZN12servo_config4opts17from_cmdline_args17h2dc2159efeff373fE                     26.5Ki   0.0%
   0.0%  26.4Ki _ZN5style6values9specified5image612_$LT$impl$u20$style..parser..Parse$u20$for$u2  26.4Ki   0.0%
   0.0%  26.2Ki ref.3                                                                             26.2Ki   0.0%
   0.0%  26.0Ki _ZN13layout_thread12LayoutThread21handle_request_helper17h073260be345e3b65E       26.0Ki   0.0%
   0.0%  25.9Ki _ZN81_$LT$std..collections..hash..map..DefaultHasher$u20$as$u20$core..hash..Hash  25.9Ki   0.0%
   0.0%  25.7Ki str.y4                                                                            25.7Ki   0.0%
   0.0%  24.8Ki _ZN5style10properties10LonghandId11parse_value17habb101083a435431E                24.8Ki   0.0%
   0.0%  24.8Ki _ZN82_$LT$devtools..actors..console..ConsoleActor$u20$as$u20$devtools..actor..Ac  24.8Ki   0.0%
   0.0%  24.8Ki ref.4                                                                             24.8Ki   0.0%
   0.0%  24.4Ki _ZN6script13script_thread12ScriptThread29handle_msg_from_constellation17he302689  24.4Ki   0.0%
   0.0%  23.7Ki _ZN5style10properties19animated_properties14AnimationValue9uncompute17hea50f4f34  23.7Ki   0.0%
   0.0%  23.7Ki _ZN2js4wasm18IonCompileFunctionEPNS0_14IonCompileTaskE                            23.7Ki   0.0%
   0.0%  23.1Ki _ZN8mp4parse9read_stsd17h243845eaa8137fffE                                        23.1Ki   0.0%
   0.0%  23.1Ki _ZN89_$LT$constellation..constellation..Constellation$LT$Message$C$$u20$LTF$C$$u  23.1Ki   0.0%
   0.0%  22.7Ki _ZN77_$LT$style..properties..PropertyDeclaration$u20$as$u20$core..clone..Clone$G  22.7Ki   0.0%
   0.0%  22.6Ki index2                                                                            22.6Ki   0.0%
   0.0%  22.5Ki _ZN33_$LT$ws..io..Handler$LT$F$GT$$GT$12handle_event17hb570cf4a6085e79cE          22.5Ki   0.0%
   0.0%  22.5Ki _ZN8devtools10run_server17h815e2d4591376ef6E                                      22.5Ki   0.0%
   0.0%  22.5Ki propsVectors                                                                      22.5Ki   0.0%
   0.0%  22.5Ki nid_objs                                                                          22.5Ki   0.0%
   0.0%  22.3Ki _ZN6layout5block9BlockFlow24compute_used_inline_size17haa0300c08b1a290aE          22.3Ki   0.0%
   0.0%  22.2Ki _ZN6script13script_thread12ScriptThread11handle_msgs17h03bad9753103d5ffE          22.2Ki   0.0%
   0.0%  22.0Ki _ZN86_$LT$devtools..actors..inspector..PageStyleActor$u20$as$u20$devtools..actor  22.0Ki   0.0%
   0.0%  22.0Ki _ZN5webvr12webvr_thread11WebVRThread5start17he5bac66dcd4a7e36E                    22.0Ki   0.0%
   0.0%  22.0Ki _ZN79_$LT$style..properties..PropertyDeclaration$u20$as$u20$core..cmp..PartialEq  22.0Ki   0.0%
   0.0%  22.0Ki ref.1B                                                                            22.0Ki   0.0%
   0.0%  21.9Ki ubidi_props_trieIndex                                                             21.9Ki   0.0%
   0.0%  21.6Ki _ZN68_$LT$style_traits..values..SequenceWriter$LT$$u27$a$C$$u20$W$GT$$GT$4item17  21.6Ki   0.0%
   0.0%     557 [None]                                                                                 0   0.0%
 100.0%  61.1Mi TOTAL                                                                              213Mi 100.0%
@jdm jdm added the I-perf-bloat label Sep 25, 2017
@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 26, 2017

This makes developing on Android especially difficult. Pushing 200M every time is slow.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 29, 2017

Using NDK's strip, it gets reduced to 23Mb.

@SimonSapin
Copy link
Member

@SimonSapin SimonSapin commented Sep 29, 2017

I just checked, -g is not passed to rustc in release mode. So I suspect this debug info is from C/C++ code like SpiderMonkey. We’ll need to dig into respective build systems and build.rs scripts to configure that.

@MortimerGoro
Copy link
Contributor

@MortimerGoro MortimerGoro commented Sep 30, 2017

I added this NDK step to servo in order to strip the size of the so and include the correct c++_shared library for the selected android architecture https://github.com/servo/servo/tree/master/support/android/apk/jni

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 30, 2017

I added this NDK step to servo in order to strip the size of the so

I'm not sure to understand where stripping happens there.

@MortimerGoro
Copy link
Contributor

@MortimerGoro MortimerGoro commented Sep 30, 2017

I'm not sure to understand where stripping happens there.
ndk-build automatically strips debug symbols when it copies .so from obj to lib folder.

It also works to use NDK's strip, as you mentioned.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Sep 30, 2017

Understood. I don't use ndk-build (I don't use Servo's APK). That's why I'm having an issue.

Would it make sense to strip from our build system?

@nox
Copy link
Member

@nox nox commented Oct 7, 2017

If this is not Android-specific, maybe we could close this issue in favour of #14176?

@jdm
Copy link
Member

@jdm jdm commented Oct 7, 2017

It is absolutely Android specific.

@paulrouget
Copy link
Contributor Author

@paulrouget paulrouget commented Jul 20, 2018

This will be addressed by #20912. gradle strips .so.

@paulrouget paulrouget mentioned this issue Jul 20, 2018
0 of 5 tasks complete
bors-servo added a commit that referenced this issue Jul 27, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 27, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 27, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 27, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 27, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 28, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 30, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
bors-servo added a commit that referenced this issue Jul 31, 2018
…sapin

Revisit how the Android port works.

Fix #20855
Fix #18625
Fix #21147

Before polishing and making sure everything works fine (like the VR code, the android-x86 version, the non-android version of the lib, …), I'd like to get some early feedback on the approach.

I recommend reviewing commit by commit.

To test, just follow the regular steps:

```
    ./mach build -d --android
    ./mach package --dev --android builds servo.apk
    ./mach install --dev --android && ./mach run --android
```

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [ ] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/20912)
<!-- Reviewable:end -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

7 participants
You can’t perform that action at this time.