OLD | NEW |
1 #!/usr/bin/env python | 1 #!/usr/bin/env python |
2 # | 2 # |
3 # Copyright (c) 2015 The Chromium Authors. All rights reserved. | 3 # Copyright (c) 2015 The Chromium Authors. All rights reserved. |
4 # Use of this source code is governed by a BSD-style license that can be | 4 # Use of this source code is governed by a BSD-style license that can be |
5 # found in the LICENSE file. | 5 # found in the LICENSE file. |
6 | 6 |
7 """Adds the code parts to a resource APK.""" | 7 """Adds the code parts to a resource APK.""" |
8 | 8 |
9 import argparse | 9 import argparse |
10 import itertools | 10 import itertools |
(...skipping 175 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
186 | 186 |
187 # 2. Assets | 187 # 2. Assets |
188 if options.write_asset_list: | 188 if options.write_asset_list: |
189 data = _CreateAssetsList( | 189 data = _CreateAssetsList( |
190 itertools.chain(_assets, _uncompressed_assets)) | 190 itertools.chain(_assets, _uncompressed_assets)) |
191 build_utils.AddToZipHermetic(out_apk, 'assets/assets_list', data=data) | 191 build_utils.AddToZipHermetic(out_apk, 'assets/assets_list', data=data) |
192 | 192 |
193 _AddAssets(out_apk, _assets, disable_compression=False) | 193 _AddAssets(out_apk, _assets, disable_compression=False) |
194 _AddAssets(out_apk, _uncompressed_assets, disable_compression=True) | 194 _AddAssets(out_apk, _uncompressed_assets, disable_compression=True) |
195 | 195 |
196 # 3. Resources | 196 # 3. Dex files |
197 for info in resource_infos[1:]: | |
198 copy_resource(info) | |
199 | |
200 # 4. Dex files | |
201 if options.dex_file and options.dex_file.endswith('.zip'): | 197 if options.dex_file and options.dex_file.endswith('.zip'): |
202 with zipfile.ZipFile(options.dex_file, 'r') as dex_zip: | 198 with zipfile.ZipFile(options.dex_file, 'r') as dex_zip: |
203 for dex in (d for d in dex_zip.namelist() if d.endswith('.dex')): | 199 for dex in (d for d in dex_zip.namelist() if d.endswith('.dex')): |
204 build_utils.AddToZipHermetic(out_apk, dex, data=dex_zip.read(dex)) | 200 build_utils.AddToZipHermetic(out_apk, dex, data=dex_zip.read(dex)) |
205 elif options.dex_file: | 201 elif options.dex_file: |
206 build_utils.AddToZipHermetic(out_apk, 'classes.dex', | 202 build_utils.AddToZipHermetic(out_apk, 'classes.dex', |
207 src_path=options.dex_file) | 203 src_path=options.dex_file) |
208 | 204 |
209 # 5. Native libraries. | 205 # 4. Native libraries. |
210 for path in native_libs: | 206 for path in native_libs: |
211 basename = os.path.basename(path) | 207 basename = os.path.basename(path) |
212 apk_path = 'lib/%s/%s' % (options.android_abi, basename) | 208 apk_path = 'lib/%s/%s' % (options.android_abi, basename) |
213 build_utils.AddToZipHermetic(out_apk, apk_path, src_path=path) | 209 build_utils.AddToZipHermetic(out_apk, apk_path, src_path=path) |
214 | 210 |
215 for name in sorted(options.native_lib_placeholders): | 211 for name in sorted(options.native_lib_placeholders): |
216 # Empty libs files are ignored by md5check, but rezip requires them | 212 # Empty libs files are ignored by md5check, but rezip requires them |
217 # to be empty in order to identify them as placeholders. | 213 # to be empty in order to identify them as placeholders. |
218 apk_path = 'lib/%s/%s' % (options.android_abi, name) | 214 apk_path = 'lib/%s/%s' % (options.android_abi, name) |
219 build_utils.AddToZipHermetic(out_apk, apk_path, data='') | 215 build_utils.AddToZipHermetic(out_apk, apk_path, data='') |
220 | 216 |
| 217 # 5. Resources |
| 218 for info in resource_infos[1:]: |
| 219 copy_resource(info) |
| 220 |
221 # 6. Java resources. Used only when coverage is enabled, so order | 221 # 6. Java resources. Used only when coverage is enabled, so order |
222 # doesn't matter). | 222 # doesn't matter). |
223 if options.emma_device_jar: | 223 if options.emma_device_jar: |
224 # Add EMMA Java resources to APK. | 224 # Add EMMA Java resources to APK. |
225 with zipfile.ZipFile(options.emma_device_jar, 'r') as emma_device_jar: | 225 with zipfile.ZipFile(options.emma_device_jar, 'r') as emma_device_jar: |
226 for apk_path in emma_device_jar.namelist(): | 226 for apk_path in emma_device_jar.namelist(): |
227 apk_path_lower = apk_path.lower() | 227 apk_path_lower = apk_path.lower() |
228 if apk_path_lower.startswith('meta-inf/'): | 228 if apk_path_lower.startswith('meta-inf/'): |
229 continue | 229 continue |
230 | 230 |
(...skipping 14 matching lines...) Expand all Loading... |
245 build_utils.CallAndWriteDepfileIfStale( | 245 build_utils.CallAndWriteDepfileIfStale( |
246 on_stale_md5, | 246 on_stale_md5, |
247 options, | 247 options, |
248 input_paths=input_paths, | 248 input_paths=input_paths, |
249 input_strings=input_strings, | 249 input_strings=input_strings, |
250 output_paths=[options.output_apk]) | 250 output_paths=[options.output_apk]) |
251 | 251 |
252 | 252 |
253 if __name__ == '__main__': | 253 if __name__ == '__main__': |
254 main(sys.argv[1:]) | 254 main(sys.argv[1:]) |
OLD | NEW |