Related
For anyone who likes to use/support FOSS and have access to the source code for what they install, f-droid.org has a handy app that lets you see only FOSS apps(you can loosen the restriction in the settings somewhat if need be).
http://f-droid.org/repository/
I've found the two pane file explorer and SSH ConnectBot and the IRC client to be excellent for my purposes. Anyone else using any of it?
Yes I use those apps (ghost commander you are talking about) as well as k9mail, osmand and about 10 more. Actually I've stopped using Google Play altogether. The problem I have is that many open source apps are getting released all the time and a lot of them dont get into f-droid , for various reasons, the main one being there is not enough developers to put together the recipes. You can suggest an app on the f-droid forums but you might have to wait a while until a developer gets around to collecting the metadata, inspecting the source code for dodgy bits, and merging it. This post http://f-droid.org/forums/topic/adding-apps-with-git/#post-587 explains the process and it doesn't look that hard. I think if more developers were aware of its existence and submitted their own apps the repo would be a lot healthier.
thanks
Hello everyone,
Based on the release of the new forums here, and the seemingly enthusiastic response, I have decided to create a repository of libraries that are useful to Android developers.
Libraries:
AChartEngine : This is a library that lets you make and display all kinds of charts, from line to bar to scatter charts. A very good solution, should you need charts.
Uses: Well... Charts!
Made by 4ViewSoft.
ActionBarSherlock: This library will help you in maintaining an easy-to-use and consistent UI across all version of Android above 2.1.
On Android 3.0+, it will use the native ActionBar, and below that, a backport of the 4.x native ActionBar has been used. Note that this is not needed if you want to target APIs that support the AB natively.
Made by Jake Wharton.
aFileChooser: The basic version of Android File Chooser, it features somewhat less graphical hints about, for example, your current folder, but does provide a somewhat cleaner UI.
Uses include a simple file chooser for opening a file from a specific folder.
Made by Paul Burke.
android-hybridchoice: A ListView that lets users open a single list item, while also letting you select one or more other items. This way, you can (for example) view a mail while selecting others to throw away, instead of having to do that separately.
Uses: Making any app with items that have detailed info in a ListView that can be changed.
Made by Kiran Rao.
android-lockpattern: A library for you to include a lock pattern in your app. It was adapted straight from Android source code, and is very useful for keeping data secure.
Uses: Root apps, apps with sensitive data or other apps that could hurt one's phone.
Made by Hai Bison.
Android FileChooser: Helps you in letting the user select a file. A visual GUI is made available to you and the user, through which the user can navigate to select a folder.
Use cases: A file explorer, a downloading action, moving/copying files, etc.
Made by Hai Bison.
Android Maps Extensions: A library that extends a number of Google Maps API v2 features. It features things like marker grouping, where it won't display individual markers when there's a lot of them together.
Can be used in an application with a Maps View, to make it clearer and easier to understand.
Made by Maciek G
Android Proxy Library: This lets you provide an easy and better (than Google's) solution to the Android Issue 1273 (OF DOOOOOOOM!). It allows you to easily get the proxy settings of an Android device.
Uses: You know, getting the proxy settings.
Made by Marco Pagliari.
BetterPickers: A cool library that implements the Android 4.2 Clock time picker for you to use in your own apps as you please. It is a very nice way to keep your app Holo-themed, and it continues the push for a consistent UI in Android.
Among others, uses include clock and calendar apps.
Made by Derek Brameyer.
Build.prop Tools: A library to get access to the properties in a device's build.prop, which include its codename, Android version, CPU name and others.
Uses: Having to edit or otherwise get access to certain build.prop entries in your app, for example to display system info.
Made by Jonathan Haylett.
Cieo: A library that lets you animate text. It is currently in very early Alpha stages of development, but does work.
Uses: Word games, for example Hangman, where you can add a little extra to make it more dynamic.
Made by Igor <LastNameUnknownException>.
DroidParts: This library helps you add the most used parts of Android apps without problems. It can help you add a number of more complicated parts that have been modded to be simpler, like an ImageFetcher and an improved ASyncTask.
Uses: Just about every app can do this. Easier everything!
Made by Alex Yanchenko.
droidText: A PDF creator library. Should you need to create a PDF easily, this is the library you want!
Uses include parsing user input and saving it to a PDF file for later use, or to send (i.e. via email).
Made by Markus Neubrand.
EventBus: This helps you tie together Activities, Fragments and background threads. It eliminates the need for overly complex listeners and interfaces, to make your life a lot easier.
Uses: Apps with background threads, Activities and/or Fragments working together.
Made by Markus Junginger.
FlipView: A FlipBoard-like animation to use for scrolling. Give your app a little extra eye candy, when you have multiple pages to scroll through.
Uses: News readers and other apps that separate content into clear "pages".
Made by Emil Sjölander.
GAST (Great Android Sensing Toolkit): A library to help you use an Android phone's internal sensors. It will help you control many sensor, including NFC, the camera and the accelerometer.
Uses: A diagnosing app, or one that uses certain sensors for controlling an app feature.
Made by Greg Milette and Adam Stroud.
GoogleDateTimePickers: TimePickers done right. A beautiful replacement for Google's standard DatePickers and TimePickers, It is designed with the Holo style in mind, and makes it much, much easier to select the date and time of your liking.
Uses: Letting the user pick a date or time, e.g. when setting an alarm.
Made by Mirko Dimartino.
Hansel And Gretel: This allows you to visually display the Fragment Stack. When you open a new Fragment, it is added to a 'tower' of Fragments, from which you can also pop (remove) the top one. This library allows you to visually represent that Stack in your app.
Uses: If, for example, you travel through multiple Fragments within one Activity, you can show which Fragments the user has gone through.
Made by Jake Wharton.
HoloEverywhere: A library that backports the Holo UI design to earlier Android versions (like ActionBarSherlock does for the ActionBar). It uses the Android 4.1 Jelly Bean assets and makes them usable on Android versions 2.1 Eclair and up.
Uses: An application that needs Holo on all platforms it runs on. Be aware that it might disrupt the UI consistency for the user, so think about that before including this in your app.
Made by Sergey Shatunov and Waza_Be.
Inscription: For displaying information about your app to the user. It contains a ChangeLogDialog and a WhatsNewDialog, where the former displays more detailed information (version numbers, etc.) than the latter.
Useful for showing a dialog after the user updated your app, without having to write too much code.
Made by Martin van Zuilekom.
JacksonInFiveMinutes: A library to help in parsing and processing JSON, offering different ways to do so: A streaming API, a tree model and data binding.
Of course, you can use this anywhere to parse JSON data (Twitter apps, for example).
Made by Tatu Saloranta (?).
JazzyViewPager: Makes it easy to add a nice effect when changing pages with a ViewPager. Easily done: just add it, change some references and pick an animation!
Uses: Spicing up your app's animation portfolio, when using a ViewPager.
Made by Jeremy Feinstein.
ListViewAnimations: An easy way of animating your ListView items easily and nicely, to give your app that little bit extra.
Uses: To spice up any ListView that needs more fancies.
Made by Niek Haarman.
NumericPageIndicator: A ViewPagerIndicator 'plug-in' that lets you easily display which page you're looking at. For example, show "page 2 of 20" at the bottom of the page.
Uses: Letting the user know which page they are on.
Made by Manuel Peinado.
OrmLite: A library that simplifies database interaction in Android apps. It is designed to work with multiple database systems, including SQLite and MySQL.
Uses: Database creation, management in Android. Various DB systems supported.
Made by Gray Watson.
osmdroid: An almost full, free replacement of Google's MapView. It includes numerous functionalities, like a number of on- and offline tile sources.
Uses: To add a map to your app, and easily use functionalities surrounding it.
Made by a number of non-disclosed awesome people!
PDFViewer SDK: A free PDF viewer library that works well. However, it does have a watermark on the screen, and you'll have to pay to remove it.
Uses are obvious: Building all kinds of PDF viewers!
Made by GEAR.it.
PlayView: This helps you in creating a Google Play-like style in your UI, by extending the CardsUI library (which can be found in the PlayView thread).
Good to use in an application where you want a nice smooth UI, with a modular and changeable look and feel.
Made by Androguide.fr and GadgetCheck, among others.
ProgressButton: A nice library that shows you the progress of a download in the same button that you press to start the download. See Google Music for a working example.
Comes in handy when there's a list of items to download, and you want to facilitate easy downloading and keeping tracks of those downloads.
Made by Prateek Srivastava, based off of Roman Nurik's examples.
PullToRefresh: Expand a Listview (multiple versions are supported) with the ability to refresh its content upon pulling down at the top.
Uses include social media clients, lists of other network-based updated items (orders, for example).
Made by Chris Banes.
Remote Metadata Provider: Get system information about, for example, which music is playing on your phone. This could help you implement lockscreen music controls for your app.
Uses: Lockscreen music controls, for example.
Made by XDA member Dr.Alexander_Breen.
RoboSpice: A library that makes long-running asynchronous tasks easy. For example, it offers caching (very useful for orientation changes).
Uses: Any app that implements an ASyncTask, especially when it is a bigger and longer-running one.
Made by Octo Technology.
RootTools: This library will make it very easy for you to gain superuser access and execute commands based on that. This way, you can, for example, move and replace files anywhere on the system.
This is especially handy when you are making a sort of backup app, or when you need the ability to do things that aren't possible without root access.
Made by Stericson.
ShowcaseView: This is a library that lets you highlight certain areas of the screen. Just like the Android launcher on first launch (or YouTube), it will allow you to tell the user how to interact with what, and what it does.
Uses: Clarifying certain UI elements and their purpose to the user.
Made by Alex Curran.
SlidingMenu: This lets you include a menu that slides into your app from the side, like the YouTube app has it. There, you can add a whole hosts of options and actions that don't fit or belong in the ActionBar. SlidingMenu also lets you customise the menu. The new Android supportv4 library version, revision 13, also has a basic version of this.
Uses: Menus with additional items, like channels in the YouTube app, shortcuts to your app's settings, etc.
Made by Jeremy Feinstein.
Spring For Android: A library that helps you integrate some features easily. For example, it can simplify using REST in your app.
Uses: Whenever your app needs REST of auth support.
Made by GoPivotal.
StandOut: A library that enables you to make your apps float! Basically, you can make any app you want float. Look in the thread for numerous examples!
Useful when you are making an app that is also used parallel to other apps, like a calculator or note taking app.
Made by Mark Wei.
StickyListHeaders: This is a great way to help you order alphabetised lists in a clear and very recognisable way. The current letter which you are scrolling through will be shown at the top of the screen, for as long as the first letter of the top item on the screen starts with that letter.
Use cases are, for example, scrolling through songs, email addresses, names and articles.
Made by Emil Sjölander.
Sugar ORM: An easy way to use SQLite libraries in your app. It takes away some of the more complex and annoying tasks of database management.
Uses: Managing and querying SQLite databases in your app.
Made by Satya Narayan.
UpdateChecker: This library is a quick and easy way of making sure that users know about updates to your app. It will show a Dialog every 5 times (by default) the app is launched, informing of an app update being available in the Play Store.
Uses: Making sure people update your app. It is handy in just about every app.
Made by Pietro Rampini.
ViewPagerIndicator: This library emulates the multiple ways of showing tab locations without using the ActionBar. This can be used to replicate the Play Store, older Google+ versions, launcher-like indicators and more!
This library is always handy when using tabs, but without wanting to, for example, sacrifice too much screen real estate to use the ActionBar.
Made by Jake Wharton.
Sites, etc. collecting libraries:
Android Libraries provides a big list of libraries for all sorts of tasks, including graphics engines.
Android Snippets is a collection of little snippets of code to help you in navigating some commonly (and less commonly) seen challenges in Android development.
Android UI Patterns for all kinds of UI libraries, with a nice app to go with it.
AndroidKickstartR is a web-based tool for quickly starting an Android app, including a number of (library) options to help ease some of the pain of adding extras. Fair warning: this seems to include older versions of some things, double check the generated project.
AndroidViews for multiple nice UI-based libraries that help make your app look and work awesome!
DevAppsDirect is an app with examples of libraries. Test without setting up a whole new project!
ramdroid77's Google+ community for GitHub-based libraries.
Libraries for developers: A nice little app that has a collection of libraries available to developers.
Also make sure to spread the word about and contribute to this repo!
Have fun,
bassie1995
very helpful thread! thanks mate
roottools is also a very helpful library: http://code.google.com/p/roottools/
nikwen said:
roottools is also a very helpful library: http://code.google.com/p/roottools/
Click to expand...
Click to collapse
Forgot that one as a big one. Shame, since I used it . Will add in a sec.
Sent from my Nexus 7 using Tapatalk HD
I used this library to include a file-chooser in my App:
https://code.google.com/p/android-filechooser/
Click to expand...
Click to collapse
and forked this, that acts basically the same:
https://github.com/dentex/aFileChooser
Click to expand...
Click to collapse
xda_dentex said:
I used this library to include a file-chooser in my App:
and forked this, that acts basically the same:
Click to expand...
Click to collapse
I shall be including this later today. Thanks for contributing!
bassie1995 said:
I shall be including this later today. Thanks for contributing!
Click to expand...
Click to collapse
You're welcome!
Also the other project seems valid. If you want, point to the original repository.
The main difference is that it stays on the standard sdcard only, by default.
I also found a really good site with cool libraries: http://www.androidviews.net/
I'm sure I will want to include some of them.
xda_dentex said:
You're welcome!
Also the other project seems valid. If you want, point to the original repository.
The main difference is that it stays on the standard sdcard only, by default.
I also found a really good site with cool libraries: http://www.androidviews.net/
I'm sure I will want to include some of them.
Click to expand...
Click to collapse
Yep, I'm including both. Also, AndroidViews is already mentioned at the bottom of the OP .
Sent from my Nexus 7 using Tapatalk HD
bassie1995 said:
...AndroidViews is already mentioned at the bottom of the OP
Click to expand...
Click to collapse
Oops... Sorry.
Sent from my GT-I9100 using xda app-developers app
I'm running a community on G+ about Android libraries hosted on github. Tons of stuff in there:
https://plus.google.com/u/0/communities/100609058582053363304
ramdroid77 said:
I'm running a community on G+ about Android libraries hosted on github. Tons of stuff in there:
https://plus.google.com/u/0/communities/100609058582053363304
Click to expand...
Click to collapse
Nice, will include the link in OP.
I was going to mention androidviews too; a very handy site. There's also a handy little app out on the Play store called Android UI Patterns (free), which is basically an app with quite a few libraries built in, so you can see what they look like in action on an actual device.
And I'm not sure if I should post this, or if it should have it's own thread (paid libraries or something), but I would argue that as there are quite a few professional developers here, a compilation of good, paid, non viral licensed libraries would be a good resource. On the other hand, XDA is all about the homebrew, open, sharing community.
Anyway, whatever the mod-gods decide, I was looking for a good, cheap, non-gpl3 licenced PDF framework for the company I work for. Many frameworks were RIDICULOUSLY expensive and many open source ones were SLOW or not functional enough. In the end I found a good alternative at androidpdf.mobi . It's fully functional, affordable and they have good support. I know this may sound like an add, but I spent some time researching this, we now use it in production and figure I might save someone some time.
MacDegger said:
I was going to mention androidviews too; a very handy site. There's also a handy little app out on the Play store called Android UI Patterns (free), which is basically an app with quite a few libraries built in, so you can see what they look like in action on an actual device.
And I'm not sure if I should post this, or if it should have it's own thread (paid libraries or something), but I would argue that as there are quite a few professional developers here, a compilation of good, paid, non viral licensed libraries would be a good resource. On the other hand, XDA is all about the homebrew, open, sharing community.
Anyway, whatever the mod-gods decide, I was looking for a good, cheap, non-gpl3 licenced PDF framework for the company I work for. Many frameworks were RIDICULOUSLY expensive and many open source ones were SLOW or not functional enough. In the end I found a good alternative at androidpdf.mobi . It's fully functional, affordable and they have good support. I know this may sound like an add, but I spent some time researching this, we now use it in production and figure I might save someone some time.
Click to expand...
Click to collapse
I have seen and used Android UI Patterns, forgot to include it.
About the licensed libraries/technologies, maybe that's a good divide for this thread. Not between UI and functional libraries, but between paid and free? Don't think there are many paid libraries for daily use, though?
If you can link me to the PDF parsing library you used, I will be including that.
Also, everyone, updates are a little slow due to school work. Hardest exam that's yet to come is on Monday, will update it probably that afternoon (my time zone ).
Sent from my Nexus 7 using Tapatalk HD
The pdf library is found at androidpdf.mobi.
You can d/l the sdk and use it for free; you pay to get rid of the watermark on each page (the fee is per application, though).
I have come across some paid UI widget libraries (coverflow type things etc). It took me a while to adapt existing OS code to achieve the same kind of effect, so sometimes, if it's the right price, it's more effective to buy these kinds of things...
AChartEngine is a good one for charts and graphs http://www.achartengine.org/
MacDegger said:
The pdf library is found at androidpdf.mobi.
You can d/l the sdk and use it for free; you pay to get rid of the watermark on each page (the fee is per application, though).
I have come across some paid UI widget libraries (coverflow type things etc). It took me a while to adapt existing OS code to achieve the same kind of effect, so sometimes, if it's the right price, it's more effective to buy these kinds of things...
Click to expand...
Click to collapse
tmka said:
AChartEngine is a good one for charts and graphs http://www.achartengine.org/
Click to expand...
Click to collapse
Thank you both. I hope to be updating the OP tomorrow.
Sent from my Nexus 7 using Tapatalk HD
StandOut is a great library to create floating app :good:
Hello everyone,
I'd suggest also DroidText, for creating PDF files
Tiwiz
ciao99 said:
StandOut is a great library to create floating app :good:
Click to expand...
Click to collapse
That looks awesome, I think I'll try it myself
tiwiz said:
Hello everyone,
I'd suggest also DroidText, for creating PDF files
Tiwiz
Click to expand...
Click to collapse
Nice, a PDF creator! I'll take a look and add it.
To everyone: Sorry for not updating, exams are busting my nuts right now . I'll try and get some more in there today or tomorrow .
Sent from my GT-I9300 using Tapatalk 2
With the exams over and spare time at 1:44 AM, I'll update this again with all the suggestions from this thread. I'll add more "external" ones later.
EDIT: Done!
Version Alpha 0.6.0 is now available
I'm back! Not dead yet, I promise. This is actually a relatively small update in terms of user-facing features, with only one really big new thing - support for file uploading - but that's a lot bigger than it might sound. It's the first write support I've implemented in the server, and it also required some fairly massive updates to the HttpServer component (support for binary requests, for POST parameters, for MIME multipart parsing). These will be built upon in forthcoming versions to add support for things like registry editing, in-browser file viewing (possibly editing), and so on. There are also a large number of small fixes and improvements that I've made over the last two-weeks-shy-of-a-year, which should make the server faster, more robust, better able to support concurrent connections, and lighter on device resources. Finally, while the app still targets WP8.0 and should run on 8.0, it now is designed for 8.1 compatibility (especially the AllCapabilities version).
Previous update (0.5.6): This version is mostly bug fixes and UI changes. The biggest changes are: clearer display of weird registry data types, the server now consumes fewer threads (it used to spawn them with wild abandon) and does faster string compares, the app version is now shown on the phone, error pages are now better, if you launch the app without a WiFi IP address it'll offer to take you to the WiFi settings page, connections are no longer closed as soon as the app starts sending a response, and the server now defaults to using the Connection: keep-alive header, with a two-minute timeout. The last change, combined with the second-to-last, should hopefully both do away with the tendency to have the app fail to display a page. However, I shouldn't have *needed* to switch it to "keep-alive" - using "close" should have worked - but it still veeeery occasionally would kill the connection early. Agh. Anyhow, this is better in the meantime.
DevDB offers me a support / Q&A thread. Please use that thread to ask questions; don't PM me unless it needs to be kept private for some reason!
ISSUES ON WP8.1:
It *should* work to deploy the app with "Application Deployment", but if you have a problem try deploying with "Windows Phone Application Deployment 8.1" instead.
Problems have been reported in the past when the app is installed to the SD card. It's small, though; putting it on internal storage shouldn't be a problem.
RESOLVED The AllCapabilities version included a few capabilities that were present in 8.0 but removed in 8.1. Those capabilities have been removed; the AllCapabilities version now deploys and runs on capability-unlocked WP8.1 phones.
IN CASE OF OTHER ISSUES: Please provide a *detailed* error report - what phone and OS version you have, what hacks you've installed, what Webserver version you're running, what you do to get the error to occur, and exactly *what* occurs - and I'll fix it as soon as I can! There's a DevDB section for posting bug reports, and you can also use CodePlex if you want.
I finally implemented file upload! I'll work on getting more stuff like that (file delete, possibly file rename/move/copy, various registry edits), hopefully soon! I also hope to add support for different areas, like an "Applications" path, a "Processes" path, a "Services" path... eventually. Many of those are really hard without good privileges. I'm also looking at moving the server to a background process and making the app just a control UI for it, adding support for authentication and/or HTTPS, adding some stylesheets to the web UI, adding caching, and much more. I did finally implement Connection header support.
Once again, the XAP is published twice. One is a fairly standard XAP that any phone can sideload, and the second has many exotic capabilities to enable viewing of (and writing to) slightly more of the file system and registry. The standard XAP has had its list of capabilities expanded to pretty much all of them that can be used without interop-unlock. The high-capability variant requires not just interop-unlock, but the additional capability-unlock hack available in the interop-unlock thread. The AllCapabilities version now works with WP8.1; sorry for the long delay on that!
An item of note: the AllCapabilities version (or either version, on WP8.1) can open other drives in the file system. On phones with an SD card, it is mounted at D: and you can browse it as normal. Credit to @hjc4869 for this discovery!
DESCRIPTION: This is a simple webserver app which can enumerate those files that are in folders readable from the sandbox, can download and upload (access permitting) files, can browse the registry, and can display the contents of registry values of any type. It runs on WP8.x (not yet tested on W10M). It is a spiritual successor to the Functional Webserver / WebServer (Mango) projects from WP7. This version is still missing a lot of functionality as I decided to implement it from scratch, but it is advancing swiftly. Note that there's no access controls implemented; use it on a public network only at your own risk!
Instructions are simple: sideload the XAP, connect to WiFi (required), run the app (called "WebServer Native Access"), point a web browser (on a PC or phone that is also on that local network) to the URL that the app displays. You should get a basic index page. Click on a Filesystem or Registry link to begin browsing the phone. There's a textbox near the top of all filesystem pages, type in a path there (for example, "C:windows" with no quotes) and hit Enter or click Get Files. You'll see a list of the contents of that folder. Click on a file to download it or a directory to open it. There's also a box for uploading files, one at a time, to the current directory. Navigating the registry is similar, except you'll need to specify the registry hive and then the path from that hive (or no path, to access the root of the hive).
As of v0.6.0, uploading files is finally supported! Other modifications (editing files, creating, deleting, or changing registry keys or values) are currently not supported. They will be "soon" although my personal testing suggests that basically the whole registry, and most of the file system, is off-limits for writing unless you use restricted capabilities.
You might see an error code (error 5 is "ACCESS_DENIED", you'll see it a lot; I should replace it with an appropriate 403 or whatever). Or you might see a status 500 message because of an exception in the server. Or the server may just crash (hopefully not so often anymore...). I'm making it more resilient, but there are still bugs. Please report any previously-unreported issues you find, including how to reproduce them, and I'll fix them if possible.
Also feel free to request features or changes; I'll implement them if reasonably possible. The app is a mixture of C++ and C# code; I could probably have done it all in one or the other but wanted to have a C++ component in case I ran into something that wasn't available in C#, and although it probably would have saved some time, I decided that hacking up a web server in C++ was maybe not the best idea.
The source code is on Codeplex, at the following projects: https://wp8webserver.codeplex.com/ for the server and the app (C#) and https://wp8nativeaccess.codeplex.com/ for the native access wrappers (C++). You may have to fix up the reference paths to get the C# component to see the C++ component correctly. The code is reasonably well documented, but let me know if you have any questions. Permission to re-use the code or components is granted under the MS-PL (Microsoft Permissive License) as posted on Codeplex.
Go forth and find cool stuff!
Version history (see the git commit logs for more detail:
07 July 2013 - 0.2.0: Initial release, FS only, 920 downloads (source: 652 downloads)
14 July 2013 - 0.3.2: initial registry, HTTP server and web app encapsulation, source on Codeplex, 225 downloads
0.3.3: bugfixes, 454 downloads
0.4.2: basic registry values display, 86 downloads
0.4.3: bugfixes, 326 downloads
0.4.6: multistring registry values, bugfixes, updated libraries, first AllCapabilities version (950 downloads), 453 downloads
25 Oct 2013 - 0.4.8: binary and long registry values, formatting and bugfixes, 451 downloads AllCaps, 201 normal
22 Dec 2013 - 0.4.9: all registry value types, better threading, proper resume, remembers port, 97 downloads AllCaps, 53 normal
24 Dec 2013 - 0.5.0: background operation using Location APIs. Downloads: 1011 AllCaps, 963 Normal
20 Jul 2014 - 0.5.1: More capabilities, better navigation. Downloads: 358 AllCaps, 352 normal
07 Aug 2014 - 0.5.3: .REG export, better traversal, bugfixes. Downloads as of 0.5.5 release: 260 AllCaps, 164 normal
10 Oct 2014 - 0.5.5: Bugfixes and back-end work. Downloads as of 0.6.0 release: 140 AllCaps, 113 normal
25 Oct 2014 - 0.5.6: Bugfixes and UI tweaks. Downloads as of 0.6.0 release: 1720 AllCaps, 1334 normal
12 Oct 2015 - 0.6.0: Binary requests, file uploads, bugfixes.
XDA:DevDB Information
WebServer Native Access, Tool/Utility for the Windows Phone 8 General
Contributors
GoodDayToDie
Source Code: https://wp8webserver.codeplex.com/
Version Information
Status: Alpha
Created 2014-10-17
Last Updated 2015-10-12
I'm going to use this space to mention something that's pretty cool:
J. Arturo of http://www.komodosoft.net is using a modified version of the HTTP server that powers this app in the ShareFolder app (http://www.windowsphone.com/s?appid=e2b9c82e-eaa1-4a3b-9d4a-8a2933a8bdb4) to support opening video files directly from Windows network shares! This was done to work around a limitation of the WP8 media control: it can only source from an isolated storage file or a HTTP URL. By running a server in the background and streaming the video file through it, and pointing the video player control at the localhost URL, it becomes possible to play the file on the phone without first copying it to the app's isolated storage. A very cool way to solve the problem! Also, reviewing the changes that were made to the network code of the server pointed me toward those threading fixes I made that have hopefully much improved version 0.4.9.
Please note that the updated version of ShareFolder with this feature may not yet be available, although it should be soon. It is a commercial (paid) app, but the author sought and received permission to use my code (although the license does not require such permission be received).
What exactly is the problem with sockets? I am battling myself with sockets atm too, maybe we can share knowledge?
Strictly speaking, the problem was with the phone's limited subset of the Sockets API forcing me to access it through functions I wouldn't normally use (asynchronous everything, SocketAsyncEventArgs and lambdas and AutoResetEvents and so on everywhere...) but I've got a pretty good handle on it now, at least for the System.Net.Sockets.Socket and its friends. The new .NET 4.x ones (using the async keyword and all) are in a different namespace; I didn't mess with them. They are more abstracted from the Bekeley sockets interface that I'm used to from C, but they are also (supposedly) more user-friendly, especially if you don't feel like writing all your own thread management code (and in fairness, I should re-write the webserver's threading to use threadpools; they're better for this type of work).
If you want to ask questions about the topic, I suggest starting a new thread (possibly in the Q&A subforum, although it's also dev related...) and I'll answer if I can.
GoodDayToDie, just an idea: how about sharing your source code via CodePlex or GitHub?
Oh man, this is pretty nice! GoodDayToDie does it again!
So far, I can read \Windows, the current install folder which you access just by typing "." with no quotes and the current application folder by typing ".." I can access the .dlls, .winmd and AppManifest.xml from the current install, but from everywhere else, it goes boom. This is a great step towards something awesome though!
EDIT:
I was wrong. For some reason, when you click on a folder it's trying to "download" it, rather than chdir. I can get pretty far into the Windows directory.
THAT's what you meant by "Click on a file (note: there's no current way to tell the difference between files and folders) to download it.
You might see an error code (error 5 is "ACCESS_DENIED", you'll see it a lot). Or you might see a status 500 message because of an exception in the server. It's getting a lot more resilient but there are surely still some bugs. ".
If you see a folder, just type the full path to it instead of clicking on it and you will be able to read the contents.
ANOTHER EDIT:
I just found a file inside of the \Windows\System32 directory named [guid].devicemetadata-ms (It's easier to just search for "devicemetadata-ms"). It's a cab file with some metadata about WP8 with a sign.cat and packagesign.cat file in the archive. I don't know what these files could potentially be useful for.
New version in a day or two (busy tonight). Features I plan to implement (not necessarily in the next version or at any particular time):
File upload (IsoStore and, of all crazy things, install directory are writable. I think I'll put a flag on each FS page that says whether the current dir is writable...).
File deletion (where possible, of course).
File and Directory distinction in the listing (clicking a dir should open it, not error out).
Filesystem index page with links to folders that can be accessed successfully (since the root isn't readable).
Some more file info (size, probably attributes, possibly permissions).
Possibly an option to preview a file (as plain text) without downloading it.
Some kind of background mode (the server uses minimal resources when not actively servicing a request, so I'll see if I can get it to work in the background, perhaps by abusing the music transfer agent...)
Some kind of offline mode (at least basic file browsing within the app, as an alternative to using the web interface, though I might just make a second app for that).
Source code changes: separate the server code from the webapp / phone app code (move it into its own project).
Source code changes: move to a hosted version control service, probably CodePlex (good suggestion sensboston).
Maybe add an icon and such...
Any other suggestions?
I also want to try experimenting with various non-standard capabilities and see if I can get access to more of the system . I've already added the ability to access removable storage, but I've also found a bunch of really weird and frequently undocumented capabilities in the OS's policy configuration files, and I need to look into those... The interesting (and possibly the uninteresting) ones are probably blocked for unsigned sideloaded apps, but it's worth checking on anyhow.
Yeah sorry, I should have been more explicit about clicking on dirs. not working in 0.2.0. Also, it's "unofficial" but if you check the URL bar you'll see a URL parameter called something like "pattern" (by default, it's *) and if you change that, you can filter the results. For example, "foo*.exe" (note: no quotes!) will search for EXE files whose names start with "foo". Among other uses, this makes it a lot faster to load large dirs like System32. This will be added to the UI at some point. Also note that URL decoding is applied correctly to querystring parameters (Probably already noticed with the path sometimes written using %5C for \) so you can add special characters that way if needed, though currently any of them but \ will probably just cause an exception.
...
Actually, does this filesystem support Alternate Data Streams? If so, you should be able to download them by appending a : and the ADS name to the filename in the download URL...
OK, so that was a new version in five days. Sorry, stuff takes time.
The source code is now on Codeplex. The native access portion is at https://wp8nativeaccess.codeplex.com/, and the web server portion is at https://wp8webserver.codeplex.com/. Both are licensed MS-PL and use Git for version control. The full XAP is also available for download from the Webserver project on Codeplex.
GoodDayToDie said:
OK, so that was a new version in five days. Sorry, stuff takes time.
The source code is now on Codeplex. The native access portion is at https://wp8nativeaccess.codeplex.com/, and the web server portion is at https://wp8webserver.codeplex.com/. Both are licensed MS-PL and use Git for version control. The full XAP is also available for download from the Webserver project on Codeplex.
Click to expand...
Click to collapse
You are a god. I'll be sure to post my findings .
Hmm. When I first load up WebServer File Access then access from my laptop, I get the main page then the program crashes on my phone. It seems to hold a lock on to the socket as i can no longer access port 9999 from any other device when re-opening the app. I can access it again when I reboot, but the same thing happens.
EDIT: I think it may be due to the WiFi at work... it's junky. I'll try again when I get home. I was just able to browse some directories.
Wow, that's completely unexpected... I can beef up the error chacking and handling around the listener port though. That part of the code is really straightforward, so I actually haven't hardened it very much. I can also put in a Finally block to close the socket and/or mark the socket as re-usable so that other apps (or the same one again) can listen on it in the future.
I also plan to add support for setting your own port, but that doesn't solve the underlying problem. I'll put in more error reporting as well, to enable better debugging. Thanks for the report! Always good to have users report problems so I know where to prioritize fixes.
GoodDayToDie said:
Wow, that's completely unexpected... I can beef up the error chacking and handling around the listener port though. That part of the code is really straightforward, so I actually haven't hardened it very much. I can also put in a Finally block to close the socket and/or mark the socket as re-usable so that other apps (or the same one again) can listen on it in the future.
I also plan to add support for setting your own port, but that doesn't solve the underlying problem. I'll put in more error reporting as well, to enable better debugging. Thanks for the report! Always good to have users report problems so I know where to prioritize fixes.
Click to expand...
Click to collapse
I tried the app at home and it DOES crash on the first hit of the home page, but I'm able to open it up again and it works fine.
The new version 0.3.3 should be more rebust; try it and let me know if you still have issues. If you do, let me know what the exception message is (and any other info you can provide) and I'll try to track it down.
Downloading really big files should also work now. The app will read and push files in smaller chunks (the code to do this existed in the NativeAccess library before, but wasn't used).
a simple SDK?
Dear Sir
Will it be possible for you to make some sort of SDK from this so other developers can integrate this into their apps and enable browsing isolatedstorage?
Sorry if it is a stupid question.
Bruce_X_Lee said:
Dear Sir
Will it be possible for you to make some sort of SDK from this so other developers can integrate this into their apps and enable browsing isolatedstorage?
Sorry if it is a stupid question.
Click to expand...
Click to collapse
With the restrictions in permissions, this app only allows browsing of the app's isolatedstorage locally. You are able to use the IsolatedStorage API within your app to browse files and directories already.
snickler said:
With the restrictions in permissions, this app only allows browsing of the app's isolatedstorage locally. You are able to use the IsolatedStorage API within your app to browse files and directories already.
Click to expand...
Click to collapse
That's right. What I want is to allow the end user to be able to browse the isolatedstorage. Imagine I have a video download app, I want the user to be able to transfer those downloaded videos from the app's isolated storage to, say, a PC.
One can do this by integrating the webserver code into the said app.
Bruce_X_Lee said:
That's right. What I want is to allow the end user to be able to browse the isolatedstorage. Imagine I have a video download app, I want the user to be able to transfer those downloaded videos from the app's isolated storage to, say, a PC.
One can do this by integrating the webserver code into the said app.
Click to expand...
Click to collapse
Ahh I see what you mean now. That sounds like a pretty nice idea. I think more research needs to be done to see whether it would even be allowed in the marketplace.
The webserver portion is stand-alone (builds to its own .NET DLL with no dependencies on the other parts) and has a pretty clean interface. You'd need to implement the web application portion of it yourself - the thing that generates the response pages for a given request - but the HttpResponse class in the server does a lot of the work of that for you; you basically just specify the content you want to send (as a String or byte array) and it sends it.
Hi guys,
Being OmniRom an open source oriented ROM, probably most of us try to use Open Source apps as possible. So what about share our preferred ones?
Here goes mines
Mail: aosp or K-9
Calendar: aosp
Keyboard: aosp
Chat: Whattsapp, Hangouts. Telegram too but not many of my friends use it unfortunately
Cloud: Owncloud. Thinking in creating my own cloud with it also.
Social: Twidere, G+.
Search engine: DDG (Google sometimes when I don't find something)
To do: ?? haven't found a good one for my needs yet, I want sync.... MyOwnNotes is too much basic yet but hoping it gets upgraded. Testing Mirakel also.
File Manager: CM File Manager
News: Feedly; still trying to learn how to use ownCloud News Reader. Pocket; in the way to learn how In the Poche exactly works...
Browser: Firefox
Video player: VLC
Music player: Apollo
Navigator: OsmAnd
Reading: CoolReader or FBReader. Amazon one also sometimes, I got some books there.
Others
Github official client, aLogcat or Catlog, AdAway, DavDroid and some others that I dont remember...
What about your preferred open source apps?? Any better option than mine?
Greetings!
Some of those aren't open source, although they're at least freely available from the Play Store.
I always have OsmAnd installed for when I'm in a place with no network coverage (gmaps will fail here).
While OsmAnd is GPL, updating from the Play Store requires a paid version of the app for full functionality. (This is perfectly legal under the GPL as complete source for the paid version is available. I consider the Play Store builds to be a "support service" myself and YES - I do pay for OsmAnd+ to facilitate my laziness. )
There are a number of opensource apps we'd like to include with Omni, but the nature of package signing in Android makes it difficult to do this except by grabbing prebuilts which we'd prefer not to do. (this is what CM does with Terminal Emulator.) I believe our inclusion of DashClock has caused some issues, which is why I'm considering putting in a patch that changes the package name to allow people to install the Play Store version without conflicts. (Similar to the patches I have in place to deconflict Google Camera with AOSP Camera.)
Entropy512 said:
Some of those aren't open source, although they're at least freely available from the Play Store.
I always have OsmAnd installed for when I'm in a place with no network coverage (gmaps will fail here).
While OsmAnd is GPL, updating from the Play Store requires a paid version of the app for full functionality. (This is perfectly legal under the GPL as complete source for the paid version is available. I consider the Play Store builds to be a "support service" myself and YES - I do pay for OsmAnd+ to facilitate my laziness. )
There are a number of opensource apps we'd like to include with Omni, but the nature of package signing in Android makes it difficult to do this except by grabbing prebuilts which we'd prefer not to do. (this is what CM does with Terminal Emulator.) I believe our inclusion of DashClock has caused some issues, which is why I'm considering putting in a patch that changes the package name to allow people to install the Play Store version without conflicts. (Similar to the patches I have in place to deconflict Google Camera with AOSP Camera.)
Click to expand...
Click to collapse
Yeah I know some of them aren't Open Source, in some cases it's hard to find a OS apps that work as desired.
You're right, DashClock gives some problems when you try to actualize, it may be a better option letting it work trough Play Store.
Thanks 4 your time @Entropy512! :good:
Greetings
If you are interested in open source software for Android click the button in my signature
F-Droid might be what you are looking for
k-kuchen said:
If you are interested in open source software for Android click the button in my signature
F-Droid might be what you are looking for
Click to expand...
Click to collapse
Yup what he said. Tons of open source apps on there
Sent from my SGH-T499 using XDA Free mobile app
k-kuchen said:
If you are interested in open source software for Android click the button in my signature
F-Droid might be what you are looking for
Click to expand...
Click to collapse
yup I know, I downloaded most of them from there
Is there a well written tutorial out there for using these two?
I'm trying to write a simple image sharing program that would use google app engine's data store to pass the images around from
the android devices.
I followed a tutorial in github.
Can't link the tutorial but a google search on 'helloendpoints' will turn it up.
at step 2, where he connects the android app to the back end, the code he supplies is filled with errors, and I don't udnerstand it well enough to
try to debug it. He also doesn't specify where to insert the class, in the back end module? In the cliend module?
No matter where I put it it seems to be missing a whole set of libs, and doesn't offer to import them.
Would any of you guys talk me through this?
So far I got the standard 'template' backend (Mybean etc.) and deployed that locally. I deployed it onto a google app engine project I made. But I can't actually connect it to my app,
Also once deployed I have no idea if it's working.
When I hit "say hello" it doesn't say "hi, <inserted text>" like it does when I deploy it locally. I'm thinking maybe that result is being sent somewhere but I'm not sure where on appengine's dev console to find it.
Please help.