Related
To the many excellent folks here at xda-developers.com, I'm releasing MobilMon 0.5 for free.
I wrote a simple app that monitors file system access (specifically, file creation, deletion, or modification). This sort of tool can be invaluable when you are trying to figure out what's happening on your system. You can export the findings to a log file.
It's pretty bare bones at this point, but that was somewhat intentional. I wanted to see what folks wanted out of such an app before spending more development time on it.
Check it out, and let me know what you think: http://www.mobilmon.com
wow! thank you! this is pretty much exactly what i was wishing for ever since i started playing around with new apps and such on my phone.
it's a great help for just before a system backup. for example, i have SPB backup set to run every other morning. let's say it runs on Saturday at 5:00am. I install some apps and do some random things from 8:00am to 9:00am. 9:30am, my phone crashes. I reset to 5:00am, and I lost all that stuff i did from 8 to 9. now i know! thanks for this app.
Feature changes
A couple of things I was considering:
1. CSV EXPORT. Would it be better to leave the plain text formatting for easy readability, or format it for CSV export?
2. DIRECTORY. I was originally going to include the ability to change the directory (i.e. something other than just "\") but that would involve some significant work on my part. And, I'm not sure if you'd really want to do that anyway.
3. VIEW FILE READS. As delivered, it monitors file adds, deletes, and changes - not reads. This was done intentionally for performance reasons. Would people want to see all the file reads, even if it bogged the device down?
This is awesome! I haven't seen anything else like it, so I am really happy to see someone from the xda-forums to make this magic!
I think that you should add in the view file reads, but only as an option. Maybe also an option to select which operations you want logged (eg. when I only want to see the files created, and not deleted). Although being able export to CSV would give me the same results, but with some editing.
3. VIEW FILE READS. As delivered, it monitors file adds, deletes, and changes - not reads. This was done intentionally for performance reasons. Would people want to see all the file reads, even if it bogged the device down?
Click to expand...
Click to collapse
Many thanks for the app.
It would be nice to have (even as a separate app) something like mamaaich's file monitor: http://forum.xda-developers.com/showthread.php?t=247425, with ability to start/stop and good frontend - to capture all file activities in the whole system.
It helps a lot to find frequent, unintended system file reads (in most cases - draining batteries)
monitor lost memory
i wonder if you could add some powerful memory mgmt to check where my pda memory is lost and what is the process,application or service which is causing memory leaks or using too much memory. maybe you could draw a graph or monitor memory usage during time for all processes. when i start my pda i have 48% free ram, after a day i am back to 80% without any visible app running.
Thanks!
Thanks
Thanks for the good feedback; I'll look into making it where you can select the types of events to monitor and then go from there.
Good lead on mamaich's program - I wasn't aware of it. I will take a look. I'm all about working smarter, not harder
Hello,
I stumbled over this (admittedly quite old) thread on the search for a windows-mobile version of something like iTunes FolderWatch or iPad ShutterSnatch.
Would it be possible to extend MobiMon such that an action can be triggered once a new file is found? In my case that action would be to start a picture viewer with the newly created file name as a parameter.
Scenario: Send pictures I take with my camera to my Windows Mobile Phone (HTC HD2) via FTP (MochaFTP) through an Ad-Hoc Network directly from the camera (using Eye-Fi). MobiMon would recognize the new file and fire up the picture viewer. This way, the latest picture taken will be shown on HD2's big display right after the shot was taken.
Of course, if there is a more streight-forward way of doing this (like a picture viewer with integrated FTP-Server ) I'd be more than happy to hear about it!
Regards and a happy new year!
Alex
Yes, it's possible.
In regards to your inquiry, it's programmatically possible, but would require a re-write. This has to do with the way things are instantiated. Whether I could afford the time to do it is a different question
1. What is the target OS?
2. Do you have the means and skills to adjust my code and compile it yourself if I just pointed out the changes needed?
allright, heres my question:
is it possible to add (i.e)tray/taskbar icon showing card r/w activity?
I am thinking not exactly about this specific project, but general idea related to it.
So, here is the situation:
I'm a Magic: the Gathering player and I love to design cards for fun. There is a bit of software called Magic Set Edtior that lets you make and store collections of custom made cards on the PC. My goal is to make a similar program for android. However, I'm relatively unfamiliar with how android apps are developed, and I have one major problem starting out:
Basically, the program needs to be able to open, create, edit, and save sets of cards that each have a few features. How do I store data for these sets? How would I accomplish that sort of file system? Should I just have the app create a internal database for each set the user makes? Are there limits to how many databases can be created by a single app? I'm probably not being as clear as I could be, and I realize that this project is probably (far) beyond my abilities - but I'd appreciate any help and would be happy to clarify anything that doesn't make sense. I'll post progress once I get this off the ground!
Check out the notepad demo at developer.android.com, it should be a good starting point for what you are trying to do
Sweet! I'll take a look. Thanks for your help ^_^
One more thing about databases, then: If the app has an internal database and I release an update for the app that modifies fields in the database, does the information get wiped? (for example, say that the tables in the db have three fields: name, cost, rules, and i issue an update that adds a "stats" field. Would that clear out the current cards in the database?)
Basically, I just want to be sure that using databases to store the sets of cards is the best, most efficient way to do this (So I won't end up having to re-code that entire bit of app).
So, databases are confusing... At least, how android works with them sure as hell is @[email protected]
So, what ive got now is that I need to make a database to store the individual card data... however, I also need to store general information about the set as well. So, do I make one new writeable database per set created, or is there a way to just use one database, and one table per set? (though I dont think you can store general info about a table that applies to each row, can you?)
Or apply for appinventor from googlelabs. Its fast and easy, should suite your purpose. Also has ability to communicate via web.
goodluck
I did apply. I'm hoping they get it too me soon.
Roid1 said:
Or apply for appinventor from googlelabs. Its fast and easy, should suite your purpose. Also has ability to communicate via web.
goodluck
Click to expand...
Click to collapse
I've got accepted like a week ago. Sad part is. You can't upload apps made to the market
sent from my pimp hero running Froyo CM6 and the XDA app
Hi,
A year ago I developed an app as part of a group project at uni. Due to the limitations set by the project rules the app isn't properly designed for Android. The app is a tour guide, in 2 parts. The guide itself is an XML file which has all the content on it. The other part is the player, which is an Android app. The player parses the XML and forms Java Classes to store the data and then play it. The content is saved in the form of Slides in a Slideshow (part of the requirements of the project, not our choice). So for instance 1 slide will be the main menu, then clicking a button will take you to another slide which will be a sub menu and so on.
Now a year later I've come to update this app, originally I was just intending to change the AbsoluteLayouts we used to Relative/Linear/List/whatever works best for that particular slide and also to put the layouts into XML rather keep them in the Java. However I was wondering what would be the best Android practice for an app such as this?
The advantage of using XML for the guide is that say if we had a guide to a different city we could just upload that new XML to a server (the player can download remotely) and then download it to get a new tour guide. However would it be best for me to strip away all of this and start afresh, with Android in mind? I.E. by removing the need to parse an XML file at the start and just have a new app for each city.
I've been thinking about a complete overhaul as changing AbsoluteLayout will be a pain. At the moment each component is given X and Y coordinates in the main XML file, so changing that to relative commands, changing the parser to read that will be hard. Also it's best practice to store the layouts in R.layout but it would be hard to convert the layout from the main Tour Guide XML to a layout XML... if that makes sense :/
If I were to remove the main XML, how would I handle each menu or content page? Would they be given their own activity?
Sorry for the long post, I just want to be clear on what the best way to update this app would be and am just learning how to properly design Android apps. I really appreciate any advice and for taking the time to read this post!
If I've put this in the wrong forum then let me know and I'll move it
Sent from my GT-I9100 using XDA App
check out
http://www.appcelerator.com/
i created my first app using it
and its on the market with around 2k downloads
it has its issues and bugs but it was my first real coding experience.
its worth checking out
and its free
Okay, so recently I made a program as part of a course in Java, using Swing, that gave you a prefix and prompted you to come up with as many words using that prefix as you could. To accomplish this, I had it use the dictionary used by Words With Friends (I might switch to a different dictionary like ENABLE, not sure yet), but that's what I've been using so far. I wanted to turn this idea into an Android application, because it seemed challenging enough to be fun, yet not too challenging.
The problem here is, the amount of time it takes a computer to load in an entire dictionary into an array of Strings of 173,139 words delimited by newlines in a .txt file is very small. The amount of time it takes to do the same in Android is slower, not to mention the fact that it needs to do this every time it starts up if I want to keep using the array.
I still wanted to make the app, so initially my idea was to do the array thing but use AsyncTask to show a loadscreen and use binary search to optimize the searching for the word in the dictionary every time the user hits a "Submit" button. This proved to be overly difficult (this is my first real Android app besides "Hello World" and a button that opened a "Hello World"...) and still quite slow.
After some searching, I decided what I really should do is make a database and have it search the database for the word when the user hits "Submit". I'm still going to use AsyncTask for downloading the database (I'd rather not bundle it with the .APK for fear of bloating it) and possibly for checking for the word in the database, depending on how fast the searching of the database ends up going.
Is this the best possible way I could go about doing this? Is there something that could give me better, faster results? From what I've seen, the database seems to be the easiest way to make sure I don't have to load in the list of words each time, but will searching the database be fast enough to appear responsive when a user wants to submit a word and see whether they got it?
I'm about to begin coding it using the database technique, but I thought I'd put this out there in case there's a better way I can accomplish this.
tl;dr: what's the quickest/best way to load in and constantly search a large (173,139 words) dictionary I have?
Thanks!
import antigravity said:
Okay, so recently I made a program as part of a course in Java, using Swing, that gave you a prefix and prompted you to come up with as many words using that prefix as you could. To accomplish this, I had it use the dictionary used by Words With Friends (I might switch to a different dictionary like ENABLE, not sure yet), but that's what I've been using so far. I wanted to turn this idea into an Android application, because it seemed challenging enough to be fun, yet not too challenging.
The problem here is, the amount of time it takes a computer to load in an entire dictionary into an array of Strings of 173,139 words delimited by newlines in a .txt file is very small. The amount of time it takes to do the same in Android is slower, not to mention the fact that it needs to do this every time it starts up if I want to keep using the array.
I still wanted to make the app, so initially my idea was to do the array thing but use AsyncTask to show a loadscreen and use binary search to optimize the searching for the word in the dictionary every time the user hits a "Submit" button. This proved to be overly difficult (this is my first real Android app besides "Hello World" and a button that opened a "Hello World"...) and still quite slow.
After some searching, I decided what I really should do is make a database and have it search the database for the word when the user hits "Submit". I'm still going to use AsyncTask for downloading the database (I'd rather not bundle it with the .APK for fear of bloating it) and possibly for checking for the word in the database, depending on how fast the searching of the database ends up going.
Is this the best possible way I could go about doing this? Is there something that could give me better, faster results? From what I've seen, the database seems to be the easiest way to make sure I don't have to load in the list of words each time, but will searching the database be fast enough to appear responsive when a user wants to submit a word and see whether they got it?
I'm about to begin coding it using the database technique, but I thought I'd put this out there in case there's a better way I can accomplish this.
tl;dr: what's the quickest/best way to load in and constantly search a large (173,139 words) dictionary I have?
Thanks!
Click to expand...
Click to collapse
In my opinion, your best option, especially if you plan on using larger dictionaries over time, would be to have the actual computing done on a server which returns the array in a JSON object that you retrieve from your app.
Hey Guys,
I am creating a app to rename other apps via xposed and the main code is written. Now I simply want to make a interface where you can define a app to rename and then enter a new name. For the beginning I thought about a Activity where you enter the Package Name and the desired name. Later on I want to use a list view to show all apps, from where you can choose one to rename(Like App Settings etc.). To show the renamed apps I want to use a ListView. Now I am stuck with a problem: My xposed code works with an array to check and rename. The list view can be used with an array or an arraylist, but I need a way to store the preferences(which are stored in a array).
Do you have a good idea or a sample how to realise this? And does somebody know a nice App List type of thing(I googled, but the project there aren't usable with my kind of approach.)
GalaxyInABox said:
Hey Guys,
I am creating a app to rename other apps via xposed and the main code is written. Now I simply want to make a interface where you can define a app to rename and then enter a new name. For the beginning I thought about a Activity where you enter the Package Name and the desired name. Later on I want to use a list view to show all apps, from where you can choose one to rename(Like App Settings etc.). To show the renamed apps I want to use a ListView. Now I am stuck with a problem: My xposed code works with an array to check and rename. The list view can be used with an array or an arraylist, but I need a way to store the preferences(which are stored in a array).
Do you have a good idea or a sample how to realise this? And does somebody know a nice App List type of thing(I googled, but the project there aren't usable with my kind of approach.)
Click to expand...
Click to collapse
Ah the data storage problem... I think we all came across this at least once . I suppose you read this guide on the different options available? Well there are actually three options: SharedPreferences, text or csv file and SQL.
The first one would need some work around and is probably the slowest. You would save a separate string directly into the SharedPreferences (maybe in a new file to avoid collisions?) with the array name and its index somehow in the key. That's just two methods of coding but not the nicest way to do it.
The text or csv file however is the more common way, here you'd save your array in one line of the file, each item separated with a ; or some other char. Needs a bit more coding and also the WRITE_EXTERNAL_STORAGE permission on preKitKat if I remember correctly.
The third one is the nicest and most modular one. Because it makes use of SQL it needs quite a bit of knowledge and some coding (but less than the text file).
I guess for simple things that you want to do it is better to stay away from SQL for now unless you know how to use it and use the SharedPreferences.
Edit: take a look at the answers to this question, they give you the code as well... And you can use StringSets in ICS and above if the order of your list doesn't matter !
I'd say go down the SQLite DB way, chances are that if you plan on expanding your coding knowledge and want to keep creating apps you'll be needing to learn this in the future anyway so why delay?
Google AndroidHive and look at their SQL tutorial - I used it when learning and found it very informative
Sent from my HTCSensation using Tapatalk
Thank you very much! As coming from windows, first of all I thought about SQL as well, but it seems oversized for the set of data i want to store. I also took a look at the stackoverflow thread you linked. It looks easy to implement, but the need to use an external class file made me look for another way. I found this one, which works pretty well for me, as I look forward to interchange the method of saving the data with a better one using the SharedPreferences(which actually should be really easy with my code).
Maybe you can tell me yet another thing: Is there a way of declaring an object(like the ArrayList) to make it accessible from every class except from giving every class(activity) it's own "load the preferences" and "save the preferences" code block or sending intents all over the place? This would make saving much easier and allow me to update the preferences during runtime and without a reboot
Edit: This was my answer to.SimplicityApks ^^ I'll take a closer look at SQL now, since you, Jonny, told me that it' nevertheless necessary.
GalaxyInABox said:
Thank you very much! As coming from windows, first of all I thought about SQL as well, but it seems oversized for the set of data i want to store. I also took a look at the stackoverflow thread you linked. It looks easy to implement, but the need to use an external class file made me look for another way. I found this one, which works pretty well for me, as I look forward to interchange the method of saving the data with a better one using the SharedPreferences(which actually should be really easy with my code).
Maybe you can tell me yet another thing: Is there a way of declaring an object(like the ArrayList) to make it accessible from every class except from giving every class(activity) it's own "load the preferences" and "save the preferences" code block or sending intents all over the place? This would make saving much easier and allow me to update the preferences during runtime and without a reboot
Edit: This was my answer to.SimplicityApks ^^ I'll take a closer look at SQL now, since you, Jonny, told me that it' nevertheless necessary.
Click to expand...
Click to collapse
Welcome
You mean you want to make your ArrayList, which is an instance variable in the activity, accessible to every other class within your package without having an instance of your activity at hands? Well the basic solution would be to make the ArrayList static. But that is not recommended because it won't be created and garbage collected at the same time as your activity and also it's not a nice way .
If you had an instance of the activity it would be just using a public getter for it, but without I'd put your ArrayList into a separate class following the Singleton pattern. That way you have only one global instance which contains the ArrayList.
Thanks again for your reply! I changed my mind about the ArrayList and created a method, where everything is stored in the SharedPreferences and the ArrayList's only purpose is the use with the ListView and Adapter. This way I don't have to write the ArrayList to the SharedPreferences and changes will be much easier to control. Although I had to implement another type of save/load method to interact with the class thats being loaded by xposed. That was needed because of the restriction that you can only load SharedPreferences with a context, which my class doesn't have. It's an inconvenient way, but it works