[Q] Noob- GIS / Mapping App - GeoDatabase for Android? - Android Software Development

Sorry if this is the wrong place to post, but this is my first jump into android app development-
I'm *trying* to develop a cross platform gis data entry solution for editing shapefile/ geo-database polygon (or point) attributes in the field. Network connectivity can only be relied upon before going to, or upon returning from, the field. Is there an android friendly method for using a (any) type of geo-database file? Right now, I'm planning on exporting polygons to a kml/kmz or similar, and separately export the attributes to sqlite for editing. Upon return from the field, the edited sqlite rows can be used to update the (server-side) geo-database attributes.
However, I would eventually like to be able to directly edit the geometry, but am not sure if this means having to write something from scratch to read from a local geodatabase file, or if some sort of *local* android geodatabase solution already exists.
Just trying to get an idea of the initial direction I should be taking, as I have gis programing and database experience, but haven't ever done any native android development.
Any suggestions or links to related references would be appreciated!
Thanks!
-B

QGIS
You may want to check out this link - http://www.qgis.org/wiki/QGIS_Mobile_GSoC_2011
I don't have any connection to that project.

I'll check it out- thanks. I also spoke with esri, and they will be releasing some android products soon, complete with apis. Certainly not ideal or open source, but probably cheaper than developing my own. Gonna keep trying to develop a simple solution for managing and edditing attributes on my own till then.
Sent from my GT-I9000 using XDA Premium App

Related

[q] Question about R. Java

Is there anyway in Eclipse to have it update the R.java file without having to have a clean build. I am creating the XML files as I go, and am tired of having to comment out code just to have the file rebuild itself.
Also on my one project, the project can't seem to even get the R. Layout. Main to even be read. I noticed it when created the project, in the Main. Java file it had an error. Why does Eclipse have to be so confusing lol.
Thanks for help in advance
Sent from my HTC Desire CDMA using XDA App
You can try turning the automatic building of the application off, then building it when you're ready.
The only problems I ever have is when I go to run a program after a lot of xml changes and it puts a layout_name.out.xml. Then you delete it, close the project, open the project, and clean build.
There is also the saving the xml file to be able to use the view, whatever it may be in the source files.
Thanks for quick reply, what I would like is as soon as I save the XML files it updates the R. Java
Sent from my HTC Desire CDMA using XDA App
this is a problem with eclipse. search these boards for R.java and you will find many people complaining about how Eclipse messes with their project because of some issue with R.java. if you havent tried IntelliJ before you might try that. there are no issues using it with R.java
and the Community Android Edition is free.
So if I understand you correctly, you want to be able to create something in the xml, and have it create it in your class file, which will create it in your R.java file by itself?
If this is the case, I don't think it would work like this. Everything with an id created for you. I know some of my apps, I don't directly interact with some of the views, so I don't need them created. For example, I have a label like textview that stays the same. I don't want it created and throwing up the unused variable exclamation point, nor do I want to waste memory doing it. I think this was the simplest of options, instead of deleting everything you don't use, you just create what you do.
I don't know your level of programming knowledge, so I guess I'll just leave it at that. No disrespect intended, if I have somehow offended you.
j0hnZ said:
So if I understand you correctly, you want to be able to create something in the xml, and have it create it in your class file, which will create it in your R.java file by itself?
If this is the case, I don't think it would work like this. Everything with an id created for you. I know some of my apps, I don't directly interact with some of the views, so I don't need them created. For example, I have a label like textview that stays the same. I don't want it created and throwing up the unused variable exclamation point, nor do I want to waste memory doing it. I think this was the simplest of options, instead of deleting everything you don't use, you just create what you do.
I don't know your level of programming knowledge, so I guess I'll just leave it at that. No disrespect intended, if I have somehow offended you.
Click to expand...
Click to collapse
i believe he means that he has created something in xml with an @+id/something and then when he goes to use it in one of his activities/etc it throws an error because R.java has not been updated with the id of 'something'..
killersnowman said:
i believe he means that he has created something in xml with an @+id/something and then when he goes to use it in one of his activities/etc it throws an error because R.java has not been updated with the id of 'something'..
Click to expand...
Click to collapse
Weird, I've never had that problem.
killersnowman said:
i believe he means that he has created something in xml with an @+id/something and then when he goes to use it in one of his activities/etc it throws an error because R.java has not been updated with the id of 'something'..
Click to expand...
Click to collapse
Basically, it doesn't even recognize it basically. I guess I should just recreate the project and copy paste my stuff
Sent from my HTC Desire CDMA using XDA App

Advice on what to research and study to make app that connects to web services

Hello! overflowers? I'm a beginner android developer and I have developed several apps that use the "basics" of android and java (for college requirements)
Now, I need to develop a new project that consists of making a web app which stores the records of all students from my college and the students will be able to check their records and other information from the college from their android phones.
I have done a lot of stuff with Android but I haven't done anything incluiding web queries, pulling info from a website to display into the device, etc etc.
So I want some advice here and/or tutorials that focus on this.
also, I have some important questions: 1. Can I pull information from the actual website from my college? If so, do I need to recieve some sort of permissions?
2. In case of not being able to pull information from the actual website from my college (for any reason whatsoever, like them not giving me permissions to do this), I could create a website that imitates its behavior, I would appreciate some tutorial or guide which could help me to achieve this.
Your help is very appreciated.
Btw, excuse if I'm breaking a rule here but something is not making sense to me.. the forum title says Q&A but when I mark this as a question it says this is not Q&A. I am aware this might be moved somewhere else but I dont know where.
Granolaa said:
Hello! overflowers? I'm a beginner android developer and I have developed several apps that use the "basics" of android and java (for college requirements)
Now, I need to develop a new project that consists of making a web app which stores the records of all students from my college and the students will be able to check their records and other information from the college from their android phones.
I have done a lot of stuff with Android but I haven't done anything incluiding web queries, pulling info from a website to display into the device, etc etc.
So I want some advice here and/or tutorials that focus on this.
also, I have some important questions: 1. Can I pull information from the actual website from my college? If so, do I need to recieve some sort of permissions?
2. In case of not being able to pull information from the actual website from my college (for any reason whatsoever, like them not giving me permissions to do this), I could create a website that imitates its behavior, I would appreciate some tutorial or guide which could help me to achieve this.
Your help is very appreciated.
Btw, excuse if I'm breaking a rule here but something is not making sense to me.. the forum title says Q&A but when I mark this as a question it says this is not Q&A. I am aware this might be moved somewhere else but I dont know where.
Click to expand...
Click to collapse
I would look into hosting an sqlite3 database on a server, and access it to retrieve the data from within your app.
But the problem is, by default you cannot access an online database on Android, so you'll need to add some kind of RESTful interface, the easiest way probably being a php script which will retrieve the data from the database and return it into a JSON object for example, that you can then pull from within your app.
You'll need to expose some kind of syntax from your php script so that your app can request the data for a specific user (ie row X / column Y).
There's probably a better approach, but this is what comes to my mind.

Help Developing An App

Morning all,
I have never created an app, but decided to look into it late last year. I began work on an app around September 2014, did a little work every weekend, and haven't really touched anything since November.
I have experience with HTML, CSS etc (I can write them). I can also have a basic understanding of other codes such as PHP, JavaScript, Java, C etc - basically, enough that I could take some code and edit it to suite.
I was hoping that creating an app would a) help grow my current business and b) give me a new challenge to learn new code.
Anyway, I'm really stuck on what to do. I downloaded Eclipse at home, but my laptop is on it's last legs. I have been creating the app at the office, using Adobe Flash Builder 4.7. I read a few tutorials, and downloaded some sample apps to learn from (as part of some of the tutorials). However, none of them have what I want.
My App Idea
So, enough waffling on, I'll try and explain my app without giving away what I want to do.
Basically, the app will be one where users can enter an error code, and press search. The result would be a page showing the description of the error code, and then what the solution is to fix it. There is then potential to add a "buy this part from" link which will suggest suppliers to visit.
So, as an example, let's say a user got a Blue Screen error code on their PC of "ABC1234". They would enter that code into my app, and the result would say something like:
Code: ABC1234
Description: RAM Error - overheating
Fix/Solution: Replace RAM
What I Have So Far
Other than a couple of test files that I've been learning with, I don't have anything solid in terms of an app. What I do have though is an Excel file with 889 error codes and what each code means.
What I Need
So, I guess what I need is either:
some help/guidance on how to create an app that in it's simplest form is a home page with a search box, and then 889 pages in the background that return depending on the searched error code.
or, someone willing to help me develop such an app
Firstly, download Android Studio - Don't use eclipse anymore
Secondly, here is a tut on using an older version of Android Studio
Have a go, see how you end up. Let us know, if you're really needing help, ask here again
Thanks,
I'll have to try that once I get home as the IT Administrator at work has to vet everything that gets installed.
minooch said:
Firstly, download Android Studio - Don't use eclipse anymore
Secondly, here is a tut on using an older version of Android Studio
Have a go, see how you end up. Let us know, if you're really needing help, ask here again
Click to expand...
Click to collapse
Hi sir! Is Android Studio is better than Eclipse?
john.reyes.jmr said:
Hi sir! Is Android Studio is better than Eclipse?
Click to expand...
Click to collapse
Yes.
john.reyes.jmr said:
Hi sir! Is Android Studio is better than Eclipse?
Click to expand...
Click to collapse
Jonny said:
Yes.
Click to expand...
Click to collapse
^^^
The only way to say it
Jonny said:
Yes.
Click to expand...
Click to collapse
Thanks sir but do we have a highly compressed Android Studio? 800mb+ is such a big file to download.
Like minooch said, install an IDE, understand how it works and then try some tuts on Internet to learn how Android works. What you want to do isn't really hard, you'll manage quickly to do it but you will be prouder if you do all by yourself.
Some hints : Don't go coding directly, try to organize your project (data structure, classes, methods) before starting to code. On a small project, it's not as important but if you start doing things well now, you'll thank yourself in the future
minooch said:
Firstly, download Android Studio - Don't use eclipse anymore
Secondly, here is a tut on using an older version of Android Studio
Have a go, see how you end up. Let us know, if you're really needing help, ask here again
Click to expand...
Click to collapse
What are the requirements for this app to run on my PC ,jdk?i have installed jre but didn't worked help me ....
Randomly Set said:
Morning all,
I have never created an app, but decided to look into it late last year. I began work on an app around September 2014, did a little work every weekend, and haven't really touched anything since November.
I have experience with HTML, CSS etc (I can write them). I can also have a basic understanding of other codes such as PHP, JavaScript, Java, C etc - basically, enough that I could take some code and edit it to suite.
I was hoping that creating an app would a) help grow my current business and b) give me a new challenge to learn new code.
Anyway, I'm really stuck on what to do. I downloaded Eclipse at home, but my laptop is on it's last legs. I have been creating the app at the office, using Adobe Flash Builder 4.7. I read a few tutorials, and downloaded some sample apps to learn from (as part of some of the tutorials). However, none of them have what I want.
My App Idea
So, enough waffling on, I'll try and explain my app without giving away what I want to do.
Basically, the app will be one where users can enter an error code, and press search. The result would be a page showing the description of the error code, and then what the solution is to fix it. There is then potential to add a "buy this part from" link which will suggest suppliers to visit.
So, as an example, let's say a user got a Blue Screen error code on their PC of "ABC1234". They would enter that code into my app, and the result would say something like:
Code: ABC1234
Description: RAM Error - overheating
Fix/Solution: Replace RAM
What I Have So Far
Other than a couple of test files that I've been learning with, I don't have anything solid in terms of an app. What I do have though is an Excel file with 889 error codes and what each code means.
What I Need
So, I guess what I need is either:
some help/guidance on how to create an app that in it's simplest form is a home page with a search box, and then 889 pages in the background that return depending on the searched error code.
or, someone willing to help me develop such an app
Click to expand...
Click to collapse
Hello.. You just cannot make a app like for such kind of work. You have to make make a website server for the same and then make a app for it. I know a technique for such kinda work.Web crawling us your answer. If you could setup a website for that then I can make a app for that easily within two days. Inbox for any further information or quote back
**********Hit thanks if I helped you***********
Shreyseviltwin said:
Hello.. You just cannot make a app like for such kind of work. You have to make make a website server for the same and then make a app for it. I know a technique for such kinda work.Web crawling us your answer. If you could setup a website for that then I can make a app for that easily within two days. Inbox for any further information or quote back
**********Hit thanks if I helped you***********
Click to expand...
Click to collapse
Hi,
What would be involved in creating an app?
pranavraut033 said:
What are the requirements for this app to run on my PC ,jdk?i have installed jre but didn't worked help me ....
Click to expand...
Click to collapse
You need the JDK. Please read the instructions on the download page. Under the section 'Requirements'

C++: open file for writing in the LocalStorage

Hi guys, could you tell me how to open file for writing in the phone app LocalStorage for the non-unlocked handset (regular app for store)?
Code below doesn't work
Code:
FILE *tmp;
auto tmpPath = Windows::Storage::ApplicationData::Current->LocalFolder->Path + "\\tmp.txt";
auto tmpErr = _wfopen_s(&tmp, tmpPath->Data(), L"w");
Any suggestions?
Try looking though msdn articles. I found it somewhere in there. But I have forgotten it now.
Sent from Board Express on my Nokia Lumia 1020. Best phone ever!!
Note to noobs: DON'T PM ME WITH QUESTIONS. POST IN THE FORUMS. THAT'S WHAT THEY ARE HERE FOR!
@wcomhelp, please keep your rtfm advices for yourself, OK? I'm not a noob and of course I've searched msdn, google, codeplex, github etc. and so on before posting here. If you don't know how, much better be silent (like others who read this post but have no idea what I'm talking about)
I've tried a few possible methods including ugly "MS-way" with task & lambda syntax (see below) but nothing worked as it should be (code below works if no file exist and fails if file already exist - CreationCollisionOption::ReplaceExisting options is not worked/not implemented/buggy/billgates_knows_only ).
Code:
auto folder = Windows::Storage::ApplicationData::Current->LocalFolder;
Concurrency::task<Windows::Storage::StorageFile^> createFileOp(
folder->CreateFileAsync(CONFIG_FILE_NAME, Windows::Storage::CreationCollisionOption::ReplaceExisting));
createFileOp.then([=](Windows::Storage::StorageFile^ file)
{
return file->OpenAsync(Windows::Storage::FileAccessMode::ReadWrite);
})
.then([=](Windows::Storage::Streams::IRandomAccessStream^ stream)
{
auto outputStream = stream->GetOutputStreamAt(0);
auto dataWriter = ref new Windows::Storage::Streams::DataWriter(outputStream);
// data save code skipped
return dataWriter->StoreAsync();
})
.wait();
BTW, I've used workaround, to save ported C++ app data to the LocalSettings instead of text file (as it was in original code).
"Doesn't work" doesn't give us a lot to go on, troubleshooting-wise. Can you tell us what error you get?
Only thing I see in the code that looks a little weird is that the
Code:
"\\tmp.txt"
part isn't explicitly a wide-character string, but I'd expect string concatenation to take care of that.
Also, out of curiosity, why libc functions instead of Win32? Obviously, the code you're writing here isn't intended for much portability...
@GoodDayToDie, there is no error code at all - standard POSIX functions returns NULL FILE, the ::GetLastError() also return 0.
I'm porting old C-style app to WinRT platform and don't care about portability (but the first post code - just a simplified example, nothing more).
POSIX (libc) functions works pretty well for reading only but not for writing - that's the problem...
As I said before, I resolved my issue by workaround but still curious why the POSIX calls fails for file writing in the app storage.
buuuuuuuuuuuuuuuuh
No need for lambdas
https://paoloseverini.wordpress.com/2014/04/22/async-await-in-c/
You may also want to rethink your strategy
You can't create files at arbitrary locations, so your method is kinda redundant. All the locations you are allowed to create and read files to/from are available through KnowFolders and ApplicationData classes. These return StorageFolders which in turn can create files with CreateFileAsync (used for both creating and opening existing files) and get files with GetFilesAsync ( I recommend against this one though) and similar methods.
@mcosmin222, could you please re-read my posts one more time? I'm not trying to create files at "arbitrary locations"; I wanna create/write simple text file at the app's local storage (which one should be available for reading/writing). And the problem not in the lambdas or task usage (yes, it looks ugly but it works as it supposed to be).
Could you provide a working example instead of words? And I'll be glad to say you "thanks a lot"; can't say now...
sensboston said:
@mcosmin222, could you please re-read my posts one more time? I'm not trying to create files at "arbitrary locations"; I wanna create/write simple text file at the app's local storage (which one should be available for reading/writing). And the main problem not in the task (async execution).
Could you provide a working example instead of words? And I'll be glad to say you "thanks a lot"; can't say now...
Click to expand...
Click to collapse
Sure, just gimmie a few hours till I can get near a compiler that is capable of doing that
Of course, no rush at all, take your time. It's not a showstopper for me now (actually, my workaround with AppSettings is more preferable way - at least for universal app and roaming settings) but the issue still has an "academic interest" and maybe will be useful in the next projects for porting old C/C++ code to WinRT.
sensboston said:
Of course, no rush at all, take your time. It's not a showstopper for me now (actually, my workaround with AppSettings is more preferable way - at least for universal app and roaming settings) but the issue still has an "academic interest" and maybe will be useful in the next projects for porting old C/C++ code to WinRT.
Click to expand...
Click to collapse
hi
in vs 2015
#include <pplawait.h>
Something of the like should work
Code:
WriteSomeFile() __resumable
{
auto local = ApplicationData::Current->LocalFolder;
auto file = __await local->CreateFileAsync("some file", CreationCollisionOption::eek:penIfExists);
__await FileIO::WriteTextAsync(file, "this is some text");
}
However, as of right now, in VS 2015 RC, you have a host of limitations when dealing with this, but I do not believe this will be of any issue to you.
Code:
Cannot use Windows Runtime (WinRT) types in the signature of resumable function and resumable function cannot be a member function in a WinRT class. (This is fixed, but didn't make it in time for RC release)
We may give a wrong diagnostic if return statement appears in resumable function prior to seeing an await expression or yield statement. (Workaround: restructure your code so that the first return happens after yield or await)
Compiling code with resumable functions may result in compilation errors or bad codegen if compiled with /ZI flag (Edit and Continue debugging)
Parameters of a resumable function may not be visible while debugging
Please see this link for additional details
http://blogs.msdn.com/b/vcblog/archive/2015/04/29/more-about-resumable-functions-in-c.aspx
you should also note that this works with native, standard C++ types.
@mcosmin222, looks like unbuffered writing works (i.e. without streams) fine but it still not an answer for my initial question
I'm curious why the standard POSIX libc writing operations are not working on the app's local storage (but reading from files works fine). Actually, it's all about porting old C/C++ code for WinRT; of course for the new app it's not a problem but re-writing old code to FileIO should be a huge pain in the ass. What I did: I've "mechanically" changed all libc formatted outputs from file to string, and use LocalSettings class (actually it's XML file) to store that string (I'm planning also change LocalSettings to RoamingSettings, to provide settings consistency between WP & desktop app).
P.S. <pplawait.h> is not available in my VS 2015 (release pro version) so I've tested by using lambda pattern.
OK, first things first, LIBC != POSIX! The POSIX way to do this would be to call the open() function and get back an int as an "fd" (file descriptor), which is of course not implemented on Windows Phone because Windows Phone is not a POSIX platform (you might find the Windows compatibility functions _open() and _wopen(), but I doubt it). You are attempting to use the standard C library functions, which are portable but implement kind of a lowest common denominator of functionality and are generally slightly slower than native APIs because they go through a portability wrapper.
Second, sorry to be all RTFM on you but you should really Read The Manual (or manpage, or, since this is Windows, the MSDN page)! Libc APIs set errno (include errno.h) and use different error values than Windows system error codes (or HRESULT codes, or NTSTATUS codes, or...). Error reporting in C is a mess. If you were calling CreateFile(), you would check GetLastError(), but since you're calling _wfopen(), you check errno (not a function).
@GoodDayToDie, _wfopen_s returns 0 (i.e. "no error") but tmp pointer receives also 0 (NULL) Could you explain why libc file functions are working for reading (at the app installation & local data folders of course) but not for writing? Any logical ("msdn based") explanation? Or you just... don't know, heh?
sensboston said:
@GoodDayToDie, _wfopen_s returns 0 (i.e. "no error") but tmp pointer receives also 0 (NULL) Could you explain why libc file functions are working for reading (at the app installation & local data folders of course) but not for writing? Any logical ("msdn based") explanation? Or you just... don't know, heh?
Click to expand...
Click to collapse
LIBC functions will most likely work just in debug mode. The moment you try to publish the app it will fail. You can do lots of crazy stuff on your developer device with basic C functions, but if you try publishing, it won't pass the marketplace verification.
Most C APIs are simply not supported, since they do not comply with the sandbox environment of the Windows Runtime.
The code I gave you is tested with VS 2015 RC. You should be able to include <pplawait.h> just fine, if you are targeting toolchains newer than November 2013.
mcosmin222 said:
The moment you try to publish the app it will fail. You can do lots of crazy stuff on your developer device with basic C functions, but if you try publishing, it won't pass the marketplace verification.
Click to expand...
Click to collapse
Hmm... Are you sure or it's just your assumption? My app is still under development but (just for test!) I've made store app package for WP and it passed local store verification I also uploaded package to the store (via browser) and it also passed. I don't have time to create all tiles and fill all fields to complete beta-submission (actually, I don't know how to mark app as beta in the new dashboard) but for me it looks like app don't have any problem and will pass store certification easily. And you may be sure - it uses A LOT of libc calls 'cause originally it was written for Linux (or kind of UX system)
sensboston said:
Hmm... Are you sure or it's just your assumption? My app is still under development but (just for test!) I've made store app package for WP and it passed local store verification I also uploaded package to the store (via browser) and it also passed. I don't have time to create all tiles and fill all fields to complete beta-submission (actually, I don't know how to mark app as beta in the new dashboard) but for me it looks like app don't have any problem and will pass store certification easily. And you may be sure - it uses A LOT of libc calls 'cause originally it was written for Linux (or kind of UX system)
Click to expand...
Click to collapse
Once usage reports get up to microsoft, you will be given a notice to fix the offending API (happened to be once). You are much better off using the platform specific tools: not only they are much faster, they are also much safer and you won't have problems later on.
You might get away with reading stuff (since reading is not that harmful), but you should be using the winRT APIs each time they are available.
Simply uploading your app to the marketplace just reruns the local tests in their cloud servers: once you submit the actual app (not beta, not tests) for consumers, it will be much more aggressively checked. This is because the store allows specific scenarios for distributing apps in close circles that may break the usual validation rules.
@mcosmin222, one more time: is it your assumptions or personal experience? I don't know how many apps you have in store (I do have a lot) but I never heard that you said. I've used C++ libraries with WP hacks in some of published apps but never had any problem with "aggressive checks". What I know: if you are using some "prohibited" calls, your app will not pass uploading to the store (uploading, not a certification).
P.S. I'll send you personally a link when I publish release Hope, you'll like it
sensboston said:
@mcosmin222, one more time: is it your assumptions or personal experience? I don't know how many apps you have in store (I do have a lot) but I never heard that you said. I've used C++ libraries with WP hacks in some of published apps but never had any problem with "aggressive checks". What I know: if you are using some "prohibited" calls, your app will not pass uploading to the store (uploading, not a certification).
P.S. I'll send you personally a link when I publish release Hope, you'll like it
Click to expand...
Click to collapse
By "hacking" you mean recompiling the code to fit the windows phone toolchain? if so, then you shouldn't have to worry about too many things.
but even so, calling stuff like fopen in locations other than local storage will get your app banned. Even if it makes past the first publication, you can get noticed weeks later or even months (yes, it did happen to me personally).
In most cases, calling C APIs that can potentially break the sandbox (like opening a file in doc library with fopen) will always fail the marketplace verification, eventually. If it hasn't happened to you yet, then you may have not been using such APIs.
No, my C++ code is not accessing other than approved locations but the app has a lot of libс (and of course other C/C++ libs) calls; I'm 99.9% sure it's legitimate and will be not a source of any problem. Otherwise what is the advantages of having C++ compiler?!
As far as I know, just some of API's are prohibited but you will notice it right after local store compatibility test run...
As for "hacks" I mean usage of undocumented ShellChromeAPI calls (including loading hack).
P.S. I've found why <pplawait.h> header is missing. Initially I've created solution with the 12.0 toolset but now I can't (or don't know how to) change it to 14. However creating the new empty universal solution in VS 2015 also gives me toolset 12 by default. What is the toolset 14 for? Windows 10?
sensboston said:
No, my C++ code is not accessing other than approved locations but the app has a lot of libс (and of course other C/C++ libs) calls; I'm 99.9% sure it's legitimate and will be not a source of any problem. Otherwise what is the advantages of having C++ compiler?!
As far as I know, just some of API's are prohibited but you will notice it right after local store compatibility test run...
As for "hacks" I mean usage of undocumented ShellChromeAPI calls (including loading hack).
P.S. I've found why <pplawait.h> header is missing. Initially I've created solution with the 12.0 toolset but now I can't (or don't know how to) change it to 14. However creating the new empty universal solution in VS 2015 also gives me toolset 12 by default. What is the toolset 14 for? Windows 10?
Click to expand...
Click to collapse
The advantage of C++ is the obvious versatility: the standard C++ APIs will work fine for you as long as you stay inside the sandbox (this means you can't access files even in locations that are outside of sandbox but you have permission to them, such as music library). You can use most classic C/C++ libraries without issues as long as you do the interface with the runtime broker yourself. That means using windows runtime APIs instead of classic C APIs when dealing with stuff such as file access, for example. This is a pretty extensive topic and It is rather difficult to explain it all with 100% accuracy, especially when there is lots of docs running around.
You also get deterministic memory management, which is huge in specific scenarios.
Long story short
You will be fine with standard C/C++ when using
any in-memory functions supported by the compiler (you can manipulate data types, string, mutex, etc).
File IO in isolated storage only (applicationData folder)
Threads (although you are better off using threadpool or the like, it is much easier and cleaner). You can also use futures, and std::this_thread.
You will have to use winRT replacement
File system access in any other location than application data (you must use the windows::storage APIs)
sockets, internet access and the like.
any hardware related thing: music&video playerback must be interfaced through winRT (although the underlying decoders can be classic C/C++), messing around with the device sensors.
Retrieving system properties (internet connection state etc)
cross process communications
communicating with other apps
There are also win32 equivalents
mutex, threading, fileIO (isolated storage only)
Media playback with custom rendering pipeline.
Basically, winRT functions as an abstraction layer between the hardware and your code. You can use classic C++ up to the point where you need to interact with the system in any way. At that point, system interaction must be done with winRT. This way, microsoft ensures a higher degree of stability and security for devices.
check this link out for more information on the toolchains. You should be able to use this in VS 2013 as well with windows 8 (this is a compiler feature, has nothing to do with supported platform)
https://paoloseverini.wordpress.com/2014/04/22/async-await-in-c/

How do I find what libraries an app is using?

Hi folks,
Newbie here, and I expect some bashing as I don't know the rules, but I did saw similar questions so started a thread here.
So, I have decompiled an apk file, and I can see that there are folders in 'src', and after googling a bit I can find some libraries like rebound in the 'com' folder of the decompiled apk. But I couldn't find other libraries as someone suggested me on twitter that devs at times obfuscate things( not sure of the obfuscation!).
I am a business guy, I know less in-depth tech stuff and I am trying to do this for a market research initiative. Is there any easy way to find libraries? For example, I learned about XML and read the structure and got information on one more library present in that APK. Is there a way as easy as this one?
Or incase, if there's a more difficult way, I am ready to learn that no matter what level of difficulty it brings. Hit me up folks!
NOTE: I'm not trying to steal any one's work. This is just a market research work.
You should analyze source code and look for relevant JARs.
Also you can use a software like Charles (charlesproxy com). It analyses all the HTTP traffic on your network, so you can run the app and then monitor the HTTP packets on Charles to detect all possible GET-requests to APIs.
hulak_aleksandr said:
You should analyze source code and look for relevant JARs.
Also you can use a software like Charles (charlesproxy com). It analyses all the HTTP traffic on your network, so you can run the app and then monitor the HTTP packets on Charles to detect all possible GET-requests to APIs.
Click to expand...
Click to collapse
Thanks for the information. I will try doing that. But will also give me information on obfuscated libraries?
What kind of library did you mention? If you looking for native libraries, you can Use an app developed by Savier, named Native Libs Monitor. Search it on Play store.
Check out http://appbrain.com, they got quite nice analytics on apps, including libraries any given app using (under Basic Information -> libraries tab)

Categories

Resources