{"id":266,"date":"2011-08-09T03:07:17","date_gmt":"2011-08-09T01:07:17","guid":{"rendered":"https:\/\/www.opengis.ch\/?p=266"},"modified":"2020-04-29T18:57:33","modified_gmt":"2020-04-29T16:57:33","slug":"gsoc-2011-weekly-report-10","status":"publish","type":"post","link":"https:\/\/www.opengis.ch\/it\/2011\/08\/09\/gsoc-2011-weekly-report-10\/","title":{"rendered":"GSoC 2011 weekly report #10"},"content":{"rendered":"<p>This week I finally managed to get a test Qt application packaged as an apk file. The application uses the native Proj lib to do some projections conversions. Basically it does the same as what qgis will do just with much more dependencies.<br \/>\nThe key problem was that necessitas wipes the libs directory when it generates a project and the native libs never get pushed to the device (<a href=\"https:\/\/sourceforge.net\/p\/necessitas\/tickets\/57\/\">bug report<\/a>). As well, when they get pushed, for example by using the ant Task, then there was a versioning problem. Android does not support (<a href=\"https:\/\/comments.gmane.org\/gmane.comp.handhelds.android.ndk\/11819\">and won&#8217;t in the future either<\/a>) versioned libs, so I had to find a way around it. I came up with two solutions, the first is a custom java method in the QtActivity class that creates symlinks or copies the libraries on runtime and loads them accordingly. the other involves editing the SONAME of each lib and padding the versioning with 0 using the rpl program (rpl -R -e libexpat.so.1 &#8220;libexpat.sox00x00&#8221; $INSTALL_DIR\/lib). I dont know yet which approach to keep, but they both work properly.<br \/>\nI updated all the scripts to be cleaner and I&#8217;m working now on creating the libqgisapp.so once I have this all the app should be hopefully ready.<br \/>\nAs well, I tried the full over th air deployement of the test app on a real device and it all works, just click on the link to the <a href=\"https:\/\/github.com\/downloads\/mbernasocchi\/qgis-android\/Qgis-debug-arm-v5.apk\">APK arm-V5<\/a> <a href=\"https:\/\/github.com\/downloads\/mbernasocchi\/qgis-android\/Qgis-debug.apk\">APK arm-v7a<\/a> and all dependencies (Qt libs as well) get installed&#8230; pretty amazing \ud83d\ude42<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This week I finally managed to get a test Qt application packaged as an apk file. The application uses the native Proj lib to do some projections conversions. Basically it does the same as what qgis will do just with much more dependencies. The key problem was that necessitas wipes [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,34,15],"tags":[43,46,48,125],"class_list":["post-266","post","type-post","status-publish","format-standard","hentry","category-android-qgis","category-gsoc-2011-weekly-report","category-qgis","tag-android","tag-android-ndk","tag-android-qt","tag-qgis-org"],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":238,"url":"https:\/\/www.opengis.ch\/it\/2011\/07\/05\/gsoc-2011-weekly-report-5\/","url_meta":{"origin":266,"position":0},"title":"GSoC 2011 weekly report #5","author":"Marco Bernasocchi","date":"5 Luglio 2011","format":false,"excerpt":"This week I re-factored the install script to make it cleverer, compiled expat library, fixed the last problem that was blocking GDAL from installing and compiled QWT library using necessitas. As well I started and started looking on compiling qgis and how to add external libs to a necessitas package.\u2026","rel":"","context":"In &quot;Android QGIS&quot;","block_context":{"text":"Android QGIS","link":"https:\/\/www.opengis.ch\/it\/category\/gis\/qfield\/android-qgis\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":222,"url":"https:\/\/www.opengis.ch\/it\/2011\/06\/10\/gsoc-2011-weekly-report-2\/","url_meta":{"origin":266,"position":1},"title":"GSoC 2011 weekly report #2","author":"Marco Bernasocchi","date":"10 Giugno 2011","format":false,"excerpt":"This week I managed to crosscompile PROJ 4.7.0 and created installer scripts for it and for GEOS, which gets to the linking step. but then stops due to the absence of STL in android. diggig into the problem I discovered (I'm almost ashamed) that the NDK docs explains how to\u2026","rel":"","context":"In &quot;Android QGIS&quot;","block_context":{"text":"Android QGIS","link":"https:\/\/www.opengis.ch\/it\/category\/gis\/qfield\/android-qgis\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":260,"url":"https:\/\/www.opengis.ch\/it\/2011\/07\/28\/qgis-cross-compiles-using-android-ndk\/","url_meta":{"origin":266,"position":2},"title":"QGIS cross compiles using android NDK","author":"Marco Bernasocchi","date":"28 Luglio 2011","format":false,"excerpt":"Finally I managed to cross compile qgis using a NDK r5c standalone toolchain. Currently the scripts to produce the binaries require the necessitas qt source to be present on the host since QtUiTools need to be compiled as well. This should be only until QtUitools is included in necessitas (maybe\u2026","rel":"","context":"In &quot;Android QGIS&quot;","block_context":{"text":"Android QGIS","link":"https:\/\/www.opengis.ch\/it\/category\/gis\/qfield\/android-qgis\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":336,"url":"https:\/\/www.opengis.ch\/it\/2011\/11\/23\/creating-non-versioned-shared-libraries-for-android\/","url_meta":{"origin":266,"position":3},"title":"Creating non-versioned shared libraries for android","author":"Marco Bernasocchi","date":"23 Novembre 2011","format":false,"excerpt":"While porting QGIS to android using necessitas I encountered the problem of versioned libs. Android does not support versioned libs and it is not going to. In the first vesions I used rpl -R -e libqgis_core.so.1.9.90 \"libqgis_core.sox00x00x00x00x00x00x00\" $APK_LIBS_DIR\u00a0and similar hacks to remove the version from the libs. But it was\u2026","rel":"","context":"In &quot;C++&quot;","block_context":{"text":"C++","link":"https:\/\/www.opengis.ch\/it\/category\/programming\/cpp\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":296,"url":"https:\/\/www.opengis.ch\/it\/2011\/08\/20\/gsoc-2011-weekly-report-12\/","url_meta":{"origin":266,"position":4},"title":"GSoC 2011 weekly report #12","author":"Marco Bernasocchi","date":"20 Agosto 2011","format":false,"excerpt":"See my last posts. In short I managed to get qgis packaged as an apk and to properly run with only one major problem. The map canvas is always black. I ll investigate this till Tuesday. Cheers","rel":"","context":"In &quot;Android QGIS&quot;","block_context":{"text":"Android QGIS","link":"https:\/\/www.opengis.ch\/it\/category\/gis\/qfield\/android-qgis\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":261,"url":"https:\/\/www.opengis.ch\/it\/2011\/07\/29\/gsoc-2011-weekly-report-9\/","url_meta":{"origin":266,"position":5},"title":"GSoC 2011 weekly report #9","author":"Marco Bernasocchi","date":"29 Luglio 2011","format":false,"excerpt":"This week I managed to cross compile qgis and started working on packaging it. See the previous post for more details.","rel":"","context":"In &quot;Android QGIS&quot;","block_context":{"text":"Android QGIS","link":"https:\/\/www.opengis.ch\/it\/category\/gis\/qfield\/android-qgis\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_shortlink":"https:\/\/wp.me\/pbdBtI-4i","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts\/266","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/comments?post=266"}],"version-history":[{"count":1,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts\/266\/revisions"}],"predecessor-version":[{"id":11210,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/posts\/266\/revisions\/11210"}],"wp:attachment":[{"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/media?parent=266"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/categories?post=266"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.opengis.ch\/it\/wp-json\/wp\/v2\/tags?post=266"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}