|
It took a year and a half but some jackass has posted a paid app of mine to half a dozen of those APK share sites. Is the license service worth implementing or is that something that these guys have figured out how to work around?
|
# ? Oct 17, 2012 05:24 |
|
|
# ? May 13, 2024 06:34 |
|
kitten smoothie posted:It took a year and a half but some jackass has posted a paid app of mine to half a dozen of those APK share sites. Somewhat convoluted to implement and yes, it has been broken. If the pirates are motivated, they may break it. Welcome to the world of DRM. Sucks on the receiving end. if it turns out to be a reliable way of determining your pirates' identities then instead of halting the app and cutting them off, you can get tricky with them and quietly log them as pirates. Then if your app deals with data, you can introduce glitches. If you have an in-app support form, you can send along its license status, so you can call the pirates out personally, and ask them to buy the application. Or, just shame them: .
|
# ? Oct 17, 2012 10:08 |
|
Yeah, I was reading through the license manager docs later last night and realize it's way too much time for me to implement something that will probably be just as easily broken. I just need to look on the bright side. It's a $2 mobile radio app I made for a buddy of mine's station, and the more listeners there are, the more he can claim to his advertisers and make his rate card look better. I have an Admob-enabled free version of the same app out there, and Admob honestly has paid crap for me. So the person who pirates it probably would have otherwise been one of the tons of people using the free version and barely earning me peanuts on it anyway.
|
# ? Oct 17, 2012 14:48 |
|
kitten smoothie posted:Yeah, I was reading through the license manager docs later last night and realize it's way too much time for me to implement something that will probably be just as easily broken. Admob is poo poo. YuMe is better, but poorly implemented. Tremor is fantastic.
|
# ? Oct 17, 2012 19:45 |
|
kitten smoothie posted:It took a year and a half but some jackass has posted a paid app of mine to half a dozen of those APK share sites. Theres nothing more depressing than realising that for every copy of some software you sell, your servers are serving 3x that amount. It pretty much killed the last company I worked at. I mean I get with stuff like photoshop or whatever from giant companies that are just absurdly expensive for low budget dudes. Its understandable that people would do it , particularly students or people trying to learn a toolkit to break into the industry (but protip: Dont use warezed tools for work, you'll get caught eventually) But warezing $2 apps from basement devs? Thats hosed in the head, and yet here we are.. But if your product is desirable, well guess what, DRM can't save you and will just annoy legit users who want to keep backups of your software for entirely reasonable reasons. The pirates will barely even notice however, as these things tend to be pretty crackable. duck monster fucked around with this message at 03:44 on Oct 22, 2012 |
# ? Oct 22, 2012 03:41 |
|
kitten smoothie posted:Yeah, I was reading through the license manager docs later last night and realize it's way too much time for me to implement something that will probably be just as easily broken. He needs to make sure he can give an accurate account of how many actual users he has. We had all sorts of problems because we where patent licencing G729 , and the people we where licencing from where grumbling about us having to pay patent fees for the unlicenced users. We where able to eventually convince them that we where not liable for pirated copies, but it definately harmed a business relationship with a company we had worked *hard* to get the licencing up for. The company sublicenced G729 rights without requiring the insane minimum sales requirements of the major patent pool ($100K minimum) but didn't for mobile devices. We had worked with them to get their pool into a sane proposition for mobile licencing, but when we started getting smashed with piracy they started to question if *we* where being honest. What a fuckup. So with Radio advertising, advertising agencies can get pissy about unverifiable streams, and if you couple this with the fact the RIAA might still want its pound of blood for music licencing fees regarding the pirate copies you still might hve a problem!
|
# ? Oct 22, 2012 04:19 |
|
Don't feel bad, the licencing departments of a lot of otherwise decent companies get dirty when they think they can get a few extra bucks. They knew they'd be able to call you on pirate/unlicensed usage, and were hoping the dice rolled in their favor and you just paid up instead of disputing it.
|
# ? Oct 22, 2012 13:11 |
|
Every single time I have to dig into Android to do something weird, I find yet another bug introduced by some idiot loving manufacturer (HTC, you should know better ) who decided to do their own thing and use their own broken loving bluetooth stack / date/time implementation / literally anything, never updates it, never fixes it and makes it impossible to work around. gently caress you, you are everything that's wrong with open source.
|
# ? Oct 22, 2012 15:20 |
|
Okay, answer another newbie question? I'm still playing with MonoDroid and I want to learn to draw things. I found about making my own view and overriding its OnDraw event, but that's okay for, y'know, drawing something once and then it never moves again, and also I lose Main.axml which would be a shame. I want to do something really basic, like draw a box and have it change colors or resize every time I click a button or on a Timer tick. It seems like what I need to do is get the canvas object of the current ContentView, right? Then I could just pass that into a function and have it draw on the canvas. Am I right so far, and if I am, how do I friggin' do that?
|
# ? Oct 22, 2012 15:50 |
|
duck monster posted:He needs to make sure he can give an accurate account of how many actual users he has. We had all sorts of problems because we where patent licencing G729 , and the people we where licencing from where grumbling about us having to pay patent fees for the unlicenced users. We where able to eventually convince them that we where not liable for pirated copies, but it definately harmed a business relationship with a company we had worked *hard* to get the licencing up for. The company sublicenced G729 rights without requiring the insane minimum sales requirements of the major patent pool ($100K minimum) but didn't for mobile devices. We had worked with them to get their pool into a sane proposition for mobile licencing, but when we started getting smashed with piracy they started to question if *we* where being honest. What a fuckup. We have just as many, if not more, people listening from Stitcher, TuneIn, iTunes, and MP3-enabled shelf systems as we do the mobile app. So in order for an accurate accounting we look at what our streaming server is actually spitting out and how many clients are connected for how long. On that end it doesn't matter whether it's a warezed copy of my app, legit copy, iTunes or whatever else. And don't even get me started on streaming royalties; we could be here all day kitten smoothie fucked around with this message at 16:17 on Oct 22, 2012 |
# ? Oct 22, 2012 15:58 |
|
CapnAndy posted:Okay, answer another newbie question? I'm still playing with MonoDroid and I want to learn to draw things. I found about making my own view and overriding its OnDraw event, but that's okay for, y'know, drawing something once and then it never moves again, and also I lose Main.axml which would be a shame. I want to do something really basic, like draw a box and have it change colors or resize every time I click a button or on a Timer tick. You have to call invalidate() to cause the onDraw to refresh again. If you are animating or drawing anything dynamically you should look into a SurfaceView instead, that will let you grab the canvas whenever you want. Murodese posted:Every single time I have to dig into Android to do something weird, I find yet another bug introduced by some idiot loving manufacturer (HTC, you should know better ) who decided to do their own thing and use their own broken loving bluetooth stack / date/time implementation / literally anything, never updates it, never fixes it and makes it impossible to work around. Yup, just ran into something weird with how the newest RAZR handles Cursors in Awful.apk, it's auto-closing them while they are still in use. It's causing constant crashes for one specific phone model. We handle cursors using the newest API and have zero issues with that code on every other phone out there. gently caress that poo poo.
|
# ? Oct 22, 2012 17:47 |
|
Geekner posted:You have to call invalidate() to cause the onDraw to refresh again. If you are animating or drawing anything dynamically you should look into a SurfaceView instead, that will let you grab the canvas whenever you want. I can't figure out how to grab its canvas.
|
# ? Oct 22, 2012 17:56 |
|
Geekner posted:Yup, just ran into something weird with how the newest RAZR handles Cursors in Awful.apk, it's auto-closing them while they are still in use. It's causing constant crashes for one specific phone model. We handle cursors using the newest API and have zero issues with that code on every other phone out there. The worst part of this is that you just know there's almost zero chance of a fix. I mean, you can kind of hope that a phone will get one update...ever. But, the chances of low-level stuff like this getting fixed in that one update are low. The one manufacturer issue that still irritates me to this day is that on several (most?) (all?) Motorola phones, the location provider just doesn't report an accuracy figure. It's always zero. Grr.
|
# ? Oct 22, 2012 17:58 |
|
CapnAndy posted:HA! I guessed that! I made a SurfaceView! Also make sure to look into the surface holder callback interface, it'll let you gracefully handle size changes.
|
# ? Oct 22, 2012 19:02 |
|
Geekner posted:You'll need to get the surface holder using getHolder(), then you can use the lock canvas method if you are working from a separate thread. Maybe what I've actually written will help: code:
CapnAndy fucked around with this message at 20:43 on Oct 22, 2012 |
# ? Oct 22, 2012 20:39 |
|
CapnAndy posted:I don't follow. I lock the canvas so nothing else can touch it, but I still don't have access to the canvas itself, so how can I draw on it? You don't create the canvas directly, you let the OS generate the canvas when you call lockCanvas(). Here's a basic example: code:
You'll want to look at the SurfaceHolder.Callback interface if you want to handle lifecycle changes better (like the surface getting created/destroyed/resized). This is technically optional, but strongly recommended. For now you can just check to see if the canvas you get from lockCanvas() is null before you use it.
|
# ? Oct 23, 2012 03:42 |
|
Does anyone have experience submitting an Android app to the Amazon App Store (in particular, for the Kindle Fire)? We've gotten approval on the Amazon App Store in general, but our app isn't listed as compatible with the Kindle Fire (even though it is technically compatible). Apparently there's a separate approval process to get onto the Kindle Fire store, but Amazon is being incredibly vague about it. Since the Kindle Fire was the main reason for us developing an Android version in the first place, this is kind of annoying.
|
# ? Oct 23, 2012 08:27 |
|
Geekner posted:You don't create the canvas directly, you let the OS generate the canvas when you call lockCanvas().
|
# ? Oct 25, 2012 22:11 |
|
Anyone done any p2p networking with Android phones? Need some way of ignoring NAT and allowing connections between devices behind incredibly varying types of networks, but preferably without a relay server (or if there is one required, something solid ie. gtalk). Annoyingly, gtalkservice would've been perfect for this but it doesn't seem to exist anymore, and cloud messaging seems to only be one-way
|
# ? Oct 30, 2012 15:53 |
|
Geekner posted:For now you can just check to see if the canvas you get from lockCanvas() is null before you use it. C# code:
C# code:
|
# ? Nov 1, 2012 18:25 |
|
CapnAndy posted:Okay, it's been a bit because I had actual projects to do and those come before learning new stuff, but I'm back to this, and the canvas I get from lockCanvas() is always null. I tried doing this: You're really making this a lot more complicated for yourself by trying to use MonoDroid. If you check the documentation for lockCanvas() you'll see "A null is returned if the surface has not been created or otherwise cannot be edited." Even though you added the child view, it still hasn't actually created the layout for that surface. The actual surface creation is done asynchronously outside the onCreate function, and you'll get a callback if you use the SurfaceHolder.Callback interface to monitor the surface. You're completely skipping XML layouts, which significantly reduce the complexity of creating the surfaceview. In the second half you just override your existing canvas, which makes no sense. The first canvas is null for the reasons listed above. Canvas c = surface.Holder.LockCanvas(); c = new Canvas(); Honestly, I would highly recommend just taking the plunge and using regular Java and look at the huge number of practical examples they give you. The LunarLander example is exactly what you need to learn how to handle a SurfaceView, and digging through the other examples will give you a much better idea about how Android works.
|
# ? Nov 1, 2012 20:31 |
|
Yeah, but on the other hand I need to do it in MonoDroid, because that's what I got told to learn, everything else we do is in Visual Studio, and that way it can be easily ported to iOS with MonoTouch. So MonoDroid it is. I am using an XML layout, though! I think I am! I've got a Main.axml, it's very useful. Using lockCanvas after OnCreate gets done running does work, so you were right. I'm gonna play with how that works vs. an overrided OnDraw. I'm sorry I'm a pain in the rear end, by the way. edit: When I change my SampleView from extending View to extending SurfaceView, suddenly the OnDraw override stops firing. How odd. SurfaceViews don't use OnDraw? edit edit: Fixed that one on my own. Apparently when you extend a SurfaceView it defaults to WillNotDraw = true. Go figure. At least I'm learning! Unfortunately, OnDraw apparently overrides whatever I did in LockCanvas. So, one step forward, one step right back. CapnAndy fucked around with this message at 21:40 on Nov 1, 2012 |
# ? Nov 1, 2012 21:13 |
|
I was planning on writing a boardgame, and then wanted to have my boardgame zoomable, scrollable, animated, responding to touch events easily, and be non-fullscreen. I cursory examination of Android graphics libraries did not reveal anything that did what I wanted to, or at least not easily. Granted, I didn't look that deeply. Therefore, I wrote my own, which has taken a good amount of my limited time for personal projects, and is elegant and easy to use. Question- would this be useful to anyone? I will take the time to properly open source it, write tutorials, document the API, etc. if this hasn't been done before and people would use it.
|
# ? Nov 2, 2012 03:44 |
|
Yes, please do.
|
# ? Nov 2, 2012 17:54 |
|
_areaman posted:Question- would this be useful to anyone? I will take the time to properly open source it, write tutorials, document the API, etc. if this hasn't been done before and people would use it. Yes! I was doing droid development a while back and wrote a lot of custom code for touch events as well. Would love to see (or even help with) a properly parametrized and pluggable libbery.
|
# ? Nov 4, 2012 23:57 |
|
I shall release it, I'm going to do some optimizations this week and implement new features. Also, I may have confused some with the word "animation". You can move objects and simulate animation, but the architecture of the engine isn't conducive to rapid changes of many objects (garbage collector will go nuts and it won't look smooth). It is meant to be a map or game board of some sort, one that allows you to scroll, zoom, and respond to touch events.
|
# ? Nov 5, 2012 18:36 |
|
Can you guys point me in the direction of any resources that would help me create a dictionary app? This'll be my first attempt at developing something for Android and I figured I'd go all in and (attempt to) make a Japanese-English dictionary. I know XML parsing is going to be involved, but I have no idea what best practices are with regards to storing and querying information stored in a hundred megabytes of XML. Do I query the XML directly? Do I import it into some kind of SQL engine? I've never had to deal with this much information before.
|
# ? Nov 15, 2012 23:09 |
|
Searching thorugh massive piles of XML souns like a performance nightmare, so importing it into some kind of database is probably your best bet. Or, if you want to cheat, you could look at how aedict did it https://code.google.com/p/aedict/
|
# ? Nov 15, 2012 23:26 |
|
Karthe posted:Can you guys point me in the direction of any resources that would help me create a dictionary app? This'll be my first attempt at developing something for Android and I figured I'd go all in and (attempt to) make a Japanese-English dictionary. I know XML parsing is going to be involved, but I have no idea what best practices are with regards to storing and querying information stored in a hundred megabytes of XML. Do I query the XML directly? Do I import it into some kind of SQL engine? I've never had to deal with this much information before. I'd probably pre-digest it into a sqlite db and include that with the app rather than parse XML, license for said information allowing. Then you can point cursors to it and use all the built-in database stuff.
|
# ? Nov 16, 2012 00:51 |
|
Does the latest version of Android (4.2 JB) expose the OpenGL ES 3.0 APIs, considering that the Adreno 320 in the S4 Pro supports it?
|
# ? Nov 17, 2012 05:44 |
|
I took an android class this summer (though I don't have a phone, planning on buying one for christmas) and I don't know how to install the .apk file from a finished project onto an android device. I have read so far that the file can be sent to a device as an attachment to an email, but I'm not sure how to install it/where the file is stored on the device from there. Is there an easy way to install an app from an .apk file?
|
# ? Nov 19, 2012 06:52 |
|
Hot Yellow KoolAid posted:I took an android class this summer (though I don't have a phone, planning on buying one for christmas) and I don't know how to install the .apk file from a finished project onto an android device. I have read so far that the file can be sent to a device as an attachment to an email, but I'm not sure how to install it/where the file is stored on the device from there. Is there an easy way to install an app from an .apk file? There are plenty of easy ways to do it, but I typically just use ES File Manager. It can connect to a Windows file share or Dropbox, then you just tap the apk file and it'll offer to install it. Alternatively, you can email the file or a link to the file hosted online somewhere. If you download it to the external/SD storage on the phone, you can tap the notification entry for that file to automatically install it. Either way, make sure to enable the "Unknown Sources" in the phone's development options beforehand.
|
# ? Nov 19, 2012 07:29 |
|
You can also connect the device to your development machine and run adb install <filename>.apk. Assuming you have the device set up for that, of course - see Geekner's post. http://developer.android.com/tools/help/adb.html
|
# ? Nov 19, 2012 16:04 |
|
I connect my device via usb, enable dev mode, press run in eclipse and it works
|
# ? Nov 19, 2012 16:11 |
|
I downloaded the sdk's and managed to get a few of the samples running last night. I noticed in JetBoy that there is a lot of subclasses in the view and that the members on objects are all public with no getters and setters. Is this standard practice for android development, or it quick implementation of the samples? I prefer giving each class it's own file as I find it much easier to follow.
|
# ? Nov 21, 2012 00:49 |
|
Giant Goober posted:I downloaded the sdk's and managed to get a few of the samples running last night. I noticed in JetBoy that there is a lot of subclasses in the view and that the members on objects are all public with no getters and setters. Is this standard practice for android development, or it quick implementation of the samples? They try to minimize the size of those examples, to make it easier to figure out. It is pretty normal to use anonymous inner classes for little things like OnClickListeners and such. But yea, just follow whatever Java style guide you feel is best for you, you won't run into any real issues. I shudder every time I see Enterprise™ quality code in an android app. Google put a lot of effort into making Dalvik a simple, straightforward Java.
|
# ? Nov 21, 2012 00:55 |
|
Thanks, I was making sure I hadn't missed a 'best practices' memo somewhere. I mostly work with GWT so I'm hoping it wont be too bigger jump to android.
|
# ? Nov 21, 2012 02:13 |
|
Geekner posted:They try to minimize the size of those examples, to make it easier to figure out. It is pretty normal to use anonymous inner classes for little things like OnClickListeners and such. But yea, just follow whatever Java style guide you feel is best for you, you won't run into any real issues. Live and learn. Can't build something good without building a few horrors along the way, I suppose.
|
# ? Nov 21, 2012 03:42 |
|
Doctor w-rw-rw- posted:I am somewhat guilty of this, having just discovered IntentServices and (Detachable)ResultReceivers as a substitute for using AsyncTasks to make network calls with a callback-like pattern. It's not awesome, but it's sufficient, and still works when specifying the service to run in its own process. That's pretty reasonable for network calls though, we use a message-passing service to do them in Awful (since 2.2) and it simplified the hell out of networking and failure fallbacks.
|
# ? Nov 21, 2012 03:48 |
|
|
# ? May 13, 2024 06:34 |
|
HOLY loving poo poo https://github.com/jfeinstein10/SlidingMenu Compile the example and try it out, or install it from the App Store: https://play.google.com/store/apps/details?id=com.slidingmenu.example This actually works. Amazingly well, in fact. Even on 2.1. As an Android developer I can't understate just how much this library will improve my quality of life. Dunno if anyone else is as thrilled by the existence of this library as I am.
|
# ? Nov 29, 2012 02:11 |